建议顺序阅读
1.安装操作系统与挂载数据盘
2.安装和配置Apache
3.编译和安装PHP7.3
4.安装和配置Mysql数据库
5.安装和配置WordPress
6.安装和配置Nginx
7.配置HTTPS与开启CDN加速
8.安装和配置phpMyAdmin
安装PHP7.3是最曲折的,一开始采用源安装,先是缺少libphp7.so
,与apache无法交互。
然后搞定这个问题后运行wordpress又是提示Your PHP installation appears to be missing the MySQL extension which is required by WordPress.
,原因是没有mysqli
模块,与mysql又无法交互。
研究半天后决定还是不要浪费时间,最终采用编译源码安装。
下面的安装来自多个网络上面的资料总结,进行了合并与修改,避免了很多坑。
文章采用顺序描述,如果需要查看遇到错误分析过程的话可以自行去网上搜索其他文章。
yum -y install gcc gcc-c++ kernel-devel
yum -y install wget pcre pcre-devel openssl openssl-devel libicu-devel autoconf libjpeg libjpeg-devel \
libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel \
glib2 glib2-devel ncurses ncurses-devel curl curl-devel krb5-devel libidn libidn-devel openldap \
openldap-devel nss_ldap jemalloc-devel cmake boost-devel bison automake libevent libevent-devel \
gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt mhash libxslt libxslt-devel readline \
readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg-devel
yum -y install gdbm-devel
因为编译过程在需要使用到这个库,所以编译php前先进行libzip的编译。
但是编译libzip需要先使用到cmake,所以先对cmake进行更新。
yum -y remove cmake
打开下载链接:https://cmake.org/download/,我这里下载但是3.15.4版本。
或者直接使用下面的链接:
wget https://github.com/Kitware/CMake/releases/download/v3.15.4/cmake-3.15.4.tar.gz
tar -xvf cmake-3.15.4.tar.gz
cd cmake-3.15.4
./bootstrap && make -j4 && make install
打开下载链接:https://libzip.org/download/,下载的是1.5.2版本。
或者直接使用下面的链接:
wget https://libzip.org/download/libzip-1.5.2.tar.gz
tar -xvf libzip-1.5.2.tar.gz
cd libzip-1.5.2
mkdir build && cd build && cmake .. && make -j4 && make install
cp -frp /usr/lib64/libldap* /usr/lib/
vim /etc/ld.so.conf
添加如下几行:
/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64
使之生效:
ldconfig -v
yum -y install httpd-devel
这一步非常重要,不安装这个,后面没有办法加--with-apxs2
参数的,这个参数用于生成libphp7.so
并安装至httpd,也就是apache的指定目录。
注意,这里的--with-apxs2
是指apxs程序所在的路径,并不是生成*.so文件的存放路径。有的文章使用这个路径--with-apxs2=/usr/local/apache2/bin/apxs
,代表apache在编译时就让apache自带apxs程序。
好了,做了这么多准备工作,终于可以编译了。
打开下载链接:https://www.php.net/downloads.php,我这里下载的是最新的7.3.10。
或者直接使用下面的链接:
wget https://www.php.net/distributions/php-7.3.10.tar.gz
tar -xvzf php-7.3.10.tar.gz
cd php-7.3.10
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/conf \
--with-fpm-user=apache \
--with-fpm-group=apache \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir \
--with-ldap=shared \
--with-gdbm \
--with-pear \
--with-gettext \
--with-curl \
--with-xmlrpc \
--with-openssl \
--with-mhash \
--with-gd \
--with-apxs2=/usr/bin/apxs \
--enable-fpm \
--enable-mysqlnd \
--enable-mysqlnd-compression-support \
--enable-xml \
--enable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-intl \
--enable-ftp \
--enable-gd-jis-conv \
--enable-pcntl \
--enable-sockets \
--enable-zip \
--enable-soap \
--enable-fileinfo \
--enable-opcache \
--enable-maintainer-zts \
具体的参数含义可以自行查找,主要注意的是prefix
指定了你相应安装的目录,这个可以自行设定。
make -j4 && make install
将php的路径添加至环境变量。
vim /etc/profile
添加以下内容到最后:
PATH=$PATH:/usr/local/php/bin
export PATH
刷新环境变量:
source /etc/profile
mkdir -p /usr/local/php/conf/
cp php.ini-production /usr/local/php/conf/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl start php-fpm.service
systemctl enable php-fpm.service
服务是否成功启动:netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
有9000端口就是成功了。
检查/etc/httpd/conf.modules.d
目录下的00-proxy.conf
配置信息,要确保mod_proxy.so
和mod_proxy_fcgi.so
已被apache
成功加载。
这一步非常重要,不正确配置的话apache还是无法启动PHP7
vim /etc/httpd/conf/httpd.conf
如果php-fpm使用的是TCP socket,那么在httpd.conf末尾加上:
SetHandler "proxy:fcgi://127.0.0.1:9000"
如果用的是unix socket,那么httpd.conf末尾加上:
ProxySet disablereuse=off
SetHandler proxy:fcgi://php-fpm
查看 PHP版本,验证一下是否安装成功:php -v
。
PHP 7.3.10 (cli) (built: Oct 19 2019 14:53:20) ( ZTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.10, Copyright (c) 1998-2018 Zend Technologies
因为云主机上准备不止搭建一个网站,所以需要配置根据域名的多网站,即输入不同的域名能访问不同的网站。
打开Apache的配置文件vim /etc/httpd/conf/httpd.conf
翻到最后可以看到IncludeOptional conf.d/*.conf
,
意思/etc/httpd/conf.d
目录下所有以.conf
结尾的文件都可以用被导入最终的配置,这样可以使主配置文件更简洁,降低修改配置后异常不能恢复的风险。
这时候可以在/etc/httpd/conf.d
目录下新建一个virtualhost.conf
的文件,用于配置虚拟主机。
输入以下命令,指定域名和主目录:
ServerName www.shangyexin.com
DocumentRoot "/home/php"
DirectoryIndex index.html index.php
Options -Indexes +FollowSymlinks
AllowOverride All
Require all granted
我们去指定目录先创一个php版本测试文件:
cd /home/php
vim index.php
写入下面的内容:
重启httpd服务器:
systemctl restart httpd
这时候如果能够看到下面这样的PHP版本信息,则代表PHP安装完成且同apache配置完毕!
Tip:
OK后记得删除virtualhost.conf
配置文件,防止与后面的配置冲突。