Mac Mini M2本地部署wordpress过程中的坑
为了自己和孩子写日记,就开始在家里的Mac Mini M2上部署wordpress,因为我的技术不过硬,过程实现曲折,记录一下。
花了我一整天,最终部署成功,还是值得的。
过程
想过Mac上直接安装数据库,apache,php,自己配置完成,但为了省事,就找了docker来部署。
关键步骤见下:
docker pull wordpress
docker pull mysql
docker run -d --name mysql -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wordpress mysql
docker run -d --name my_wordpress -e WORDPRESS_DB_HOST=mysql:3306 --link mysql -p 8083:80 wordpress
坑
一路上遇到了很多障碍。
1.不知道怎么进入docker容器环境去拿wp-config.php的路径,修改配置。
1)用下面的命令找到正在运行的docker容器。
docker ps
2)找到了wordpress的docker名字比如my_wordpress之后输入
docker exec -it my_wordpress bash
3)进入docker容器环境,用pwd获取wp-config.php所在路径输入exit退出docker容器环境回到宿主机(本机)
4)拷贝docker容器环境下的wp-config.php文件到宿主机(本机)
docker cp ~/tmp my_wordpress://var/www/html/wp-config.php
5)用本地编辑器编辑打开tmp,修改下面的语句
/** Database username */
define( 'DB_USER', getenv_docker('WORDPRESS_DB_USER', 'root') );
/** Database password */
define( 'DB_PASSWORD', getenv_docker('WORDPRESS_DB_PASSWORD', 'root') );
6)拷贝宿主机(本机)tmp文件到docker容器环境下覆盖wp-config.php
至此避坑。
2. 要在家庭局域网里,其他电脑或手机访问这个网站呢?怎么办?
1)修改wp-config.php,按照第1节方法进入docker容器环境,拷贝docker容器环境下的wp-config.php文件到宿主机(本机),接着把下面这段代码放入 define('ABSPATH', dirname(FILE) . '/'); 这条语句后面
function get_dynamic_home_url(){
$base_dir = ABSPATH; // Absolute path
$doc_root = preg_replace("!${_SERVER['SCRIPT_NAME']}$!", '', $_SERVER['SCRIPT_FILENAME']);
$base_url = preg_replace("!^${doc_root}!", '', $base_dir);
$protocol = empty($_SERVER['HTTPS']) ? 'http' : 'https';
$port = $_SERVER['SERVER_PORT'];
$disp_port = ($protocol == 'http' && $port == 80 || $protocol == 'https' && $port == 443) ? '' : ":$port";
$domain = $_SERVER['SERVER_NAME'];
$home_url = "${protocol}://${domain}${disp_port}${base_url}";
return $home_url;
}
$url = get_dynamic_home_url();
define('WP_SITEURL', $url);
define('WP_HOME', $url);
修改完成后,仍然拷贝宿主机(本机)tmp文件到docker容器环境下覆盖wp-config.php
2)重启docker容器my_wordpress
docker restart my_wordpress
3. 访问网站慢怎么办?
因为网站加载了Google的一些字体之类的。
可以尝试访问http://[宿主机局域网ip]:8083/wp-admin登陆后,找到主题的function.php加入下面代码。
function coolwp_remove_open_sans_from_wp_core(){
wp_deregister_style('open-sans');
wp_register_style('open-sans',false);
wp_enqueue_style('open-sans','');
}
add_action('init','coolwp_remove_open_sans_from_wp_core');
4. 主题不好看?
我装了一个开源主题,还是很不错的。
https://github.com/solstice23/argon-theme