/wp-admin/install.php를 방문하지 않고 bash 쉘을 사용하여 WordPress를 설치하시겠습니까?
폴더를 만들고 Wordpress를 압축 해제하고 사이트를 위한 데이터베이스를 만드는 작은 BASH 스크립트를 작성했습니다.
마지막 단계는 실제로 Wordpress를 설치하는 것입니다.Wordpress는 보통 브라우저에서 install.php를 가리키고 GUI에서 폼을 작성합니다.
BASH 쉘에서 이 작업을 수행하고 싶은데 wp_install()을 호출하여 필요한 파라미터를 전달하는 방법을 알 수 없습니다.
-admin_email
-admin_password(비밀번호)
- weblog_module
-user_name
(install.http의 85행)
#!/bin/bash
#ask for the site name
echo "Site Name:"
read name
# make site directory under splogs
mkdir /var/www/splogs/$name
dirname="/var/www/splogs/$name"
#import wordpress from dropbox
cp -r ~/Dropbox/Web/Resources/Wordpress/Core $dirname
cd $dirname
#unwrap the double wrap
mv Core/* ./
rm -r Core
mv wp-config-sample.php wp-config.php
sed -i 's/database_name_here/'$name'/g' ./wp-config.php
sed -i 's/username_here/root/g' ./wp-config.php
sed -i 's/password_here/mypassword/g' ./wp-config.php
cp -r ~/Dropbox/Web/Resources/Wordpress/Themes/responsive $dirname/wp-content/t$
cd $dirname
CMD="create database $name"
mysql -uroot -pmypass -e "$CMD"
브라우저를 열지 않고 설치 프로그램을 자동으로 실행하도록 스크립트를 변경하려면 어떻게 해야 합니까?
드루쉬의 드루팔을 기반으로 wp-cli를 확인하십시오.
wp core install --url=url --title=site-title [--admin_name=username] --admin_email=email --admin_password=password
모든 명령어:
wp core [download|config|install|install_network|version|update|update_db]
wp db [create|drop|optimize|repair|connect|cli|query|export|import]
wp eval-file
wp eval
wp export [validate_arguments]
wp generate [posts|users]
wp home
wp option [add|update|delete|get]
wp plugin [activate|deactivate|toggle|path|update|uninstall|delete|status|install]
wp post-meta [get|delete|add|update]
wp post [create|update|delete]
wp theme [activate|path|delete|status|install|update]
wp transient [get|set|delete|type]
wp user-meta [get|delete|add|update]
wp user [list|delete|create|update]
저도 당신과 같은 문제를 겪고 있었어요.빅터의 방법을 시도해 봤지만 효과가 없었어요.몇 가지 편집을 했더니 이제 작동하네요!코드를 작동시키려면 스크립트 내부에 php 태그를 추가해야 합니다.그렇지 않으면 단말기에 에코만 됩니다.
스크립트는 업그레이드의 wp_install 함수를 직접 호출합니다.php, 설치를 생략합니다.php 완전(다른 파일을 편집할 필요가 없습니다).
script.sh이라는 이름의 스크립트를 만들고 실행 가능한 것으로 만들어 wp-admin 디렉토리에 드롭하고 단말기에서 실행했습니다.
#!/usr/bin/php
<?php
function get_args()
{
$args = array();
for ($i=1; $i<count($_SERVER['argv']); $i++)
{
$arg = $_SERVER['argv'][$i];
if ($arg{0} == '-' && $arg{1} != '-')
{
for ($j=1; $j < strlen($arg); $j++)
{
$key = $arg{$j};
$value = $_SERVER['argv'][$i+1]{0} != '-' ? preg_replace(array('/^["\']/', '/["\']$/'), '', $_SERVER['argv'][++$i]) : true;
$args[$key] = $value;
}
}
else
$args[] = $arg;
}
return $args;
}
// read commandline arguments
$opt = get_args();
define( 'WP_INSTALLING', true );
/** Load WordPress Bootstrap */
require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' );
/** Load WordPress Administration Upgrade API */
require_once( dirname( __FILE__ ) . '/includes/upgrade.php' );
/** Load wpdb */
require_once(dirname(dirname(__FILE__)) . '/wp-includes/wp-db.php');
$result = wp_install($opt[0], $opt[1], $opt[2], false, '', $opt[3]);
?>
파일을 이렇게 불렀습니다.# ./script.sh SiteName UserName email@address.com Password
Wordpress 원래 설치 프로그램을 약간 수정해야 할 수도 있습니다.
먼저 래퍼 php CLI 스크립트를 만듭니다.이 스크립트의 이름은 다음과 같습니다.wrapper.sh
:
#!/usr/bin/php -qC
function get_args()
{
$args = array();
for ($i=1; $i<count($_SERVER['argv']); $i++)
{
$arg = $_SERVER['argv'][$i];
if ($arg{0} == '-' && $arg{1} != '-')
{
for ($j=1; $j < strlen($arg); $j++)
{
$key = $arg{$j};
$value = $_SERVER['argv'][$i+1]{0} != '-' ? preg_replace(array('/^["\']/', '/["\']$/'), '', $_SERVER['argv'][++$i]) : true;
$args[$key] = $value;
}
}
else
$args[] = $arg;
}
return $args;
}
// read commandline arguments
$opt = get_args();
require "install.php";
이를 통해 명령줄에서 스크립트를 호출하여 $opt 숫자 배열에 직접 인수를 전달할 수 있습니다.
그런 다음 다음과 같이 정의한 엄격한 순서로 필요한 변수를 통과시킬 수 있습니다.
./wrapper.sh <admin_email> <admin_password> <weblog_title> <user_name>
에서install.php
앞서 언급한 var의 정의를 다음과 같이 변경해야 합니다.
global $opt;
$admin_email = $opt[0];
$admin_password = $opt[1];
$weblog_title = $opt[2];
$user_name = $opt[3];
그런 다음 설치 스크립트가 작동하도록 합니다.
이 방법은 테스트되지 않은 방법으로 필요한 수정에도 매우 개방적입니다.주로 래퍼 php/cli 스크립트를 사용하여 HTTP REQUEST/query 문자열로 전송해야 하는 필요 변수 w/out을 정의하기 위한 가이드라인입니다.어쩌면 일을 끝내기 위한 이상한 방법일지도 모르니, 건설적인/파괴적인 피드백을 자유롭게 주세요:-)
이 주제에 대한 토론이 얼마나 적은지 믿을 수 없다.WP-CLI가 출시되어 현재 Automatic에 인수된 것은 훌륭하다고 생각합니다.이것이 프로젝트의 장기적인 진행에 도움이 될 것입니다.
그러나 다른 의존관계에 의존하는 것은 이상적이지 않습니다.특히 자동 도입에 대처할 때는...
이게 우리가 SlikStack에 대해 생각해낸...
먼저 MySQL "test" 쿼리와 wp_options의 grep를 변수로 저장합니다.
QUERY_PRODUCTION_WP_OPTIONS_EXIST=$(mysql --execute "SHOW TABLES FROM ${DB_NAME} WHERE Tables_in_${DB_NAME} LIKE '${DB_PREFIX}options';")
GREP_WP_OPTIONS_STRING_PRODUCTION=$(echo "${QUERY_PRODUCTION_WP_OPTIONS_EXIST}" | grep --no-messages "${DB_PREFIX}"options)
...이렇게 하면 쿼리/스냅이 경고를 토해낼 수 있는 경우와 같은 잘못된 긍정을 피할 수고를 덜 수 있습니다.
또한 WordPress 데이터베이스를 조건부로 채우는 if 문:
## populate database if wp_options not exists ##
if [[ -z "${GREP_WP_OPTIONS_STRING_PRODUCTION}" ]]; then
/usr/bin/php -qCr "include '/var/www/html/wp-admin/install.php'; wp_install('SlickStack', '\"${SFTP_USER}\"', '\"${SFTP_USER}\"@\"${SITE_DOMAIN_EXCLUDING_WWW}\"', 1, '', \"${SFTP_PASSWORD}\");"
fi
-q
을 피하기 위해 있습니다.또, 「경합」은 「경합」을 회피합니다.-r
이치하다건 -C
여기에 깃발을 올려놨는데 혹시나 해서 붙여놨어요.
주의: if 스테이트먼트를 몇 번인가 조작해야 했습니다.wp_install
array는 기밀성이 높고 패스워드 변수를 작은 따옴표로 감싸 MD5 해시코드가 파손된 것을 알 수 있었습니다.'/'는 '/'는 '/'는 '/'/''
언급URL : https://stackoverflow.com/questions/10062513/install-wordpress-using-bash-shell-without-visiting-wp-admin-install-php
'source' 카테고리의 다른 글
어떻게 하면 경고를 피할 수 있을까요? 청크 스타일 [mini-css-extract-plugin]개츠비 JS의 모순된 순서? (0) | 2023.03.15 |
---|---|
ASP.NET MVC 및 Ajax, 동시 요청? (0) | 2023.03.15 |
Jackson @JsonFormat 설정 날짜를 하루 미만으로 설정 (0) | 2023.03.15 |
spring-boot-starter-test with JUnit 5 (0) | 2023.03.15 |
angularjs - ng-src 내에서 {{}} 바인딩을 사용하지만 ng-src가 로드되지 않음 (0) | 2023.03.15 |