[目录] 建议顺序阅读 1.安装操作系统与挂载数据盘 2.安装和配置Apache 3.编译和安装PHP7.3 4.安装和配置Mysql数据库 5.安装和配置WordPress 6.安装和配置Nginx 7.配置HTTPS与开启CDN加速 8.安装和配置phpMyAdmin 
3.编译安装PHP7.3 安装PHP7.3是最曲折的,一开始采用源安装,先是缺少libphp7.so,与apache无法交互。 然后搞定这个问题后运行wordpress又是提示Your PHP installation appears to be missing the MySQL extension which is required by WordPress.,原因是没有mysqli模块,与mysql又无法交互。 研究半天后决定还是不要浪费时间,最终采用编译源码安装。 下面的安装来自多个网络上面的资料总结,进行了合并与修改,避免了很多坑。 文章采用顺序描述,如果需要查看遇到错误分析过程的话可以自行去网上搜索其他文章。
①安装编译工具 (1)安装gcc,gcc-c++,kernel-devel yum -y install gcc gcc-c++ kernel-devel
(2)安装php需要的依赖库 1 2 3 4 5 6 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
 
(3)安装 gdbm-devel yum -y install gdbm-devel
②编译libzip 因为编译过程在需要使用到这个库,所以编译php前先进行libzip的编译。 但是编译libzip需要先使用到cmake,所以先对cmake进行更新。
(1)删除自带低版本cmake yum -y remove cmake
(2)下载cmake源码 打开下载链接:https://cmake.org/download/ ,我这里下载但是3.15.4版本。 或者直接使用下面的链接:
1 wget https://github.com/Kitware/CMake/releases/download/v3.15.4/cmake-3.15.4.tar.gz
 
(3)编译并安装cmake 1 2 3 tar -xvf cmake-3.15.4.tar.gzcd  cmake-3.15.4 ./bootstrap && make -j4 && make install
 
(4)下载libzip源码 打开下载链接:https://libzip.org/download/ ,下载的是1.5.2版本。 或者直接使用下面的链接:
1 wget https://libzip.org/download/libzip-1.5.2.tar.gz
 
(5)编译并安装libzip 1 2 3 tar -xvf libzip-1.5.2.tar.gzcd  libzip-1.5.2mkdir  build && cd  build && cmake .. && make -j4 && make install
 
③复制和配置编译文件 (1)拷贝库文件 cp -frp /usr/lib64/libldap* /usr/lib/
(2)修改链接库查找 vim /etc/ld.so.conf 添加如下几行:
1 2 3 4 /usr/local/lib64 /usr/local/lib /usr/lib /usr/lib64
 
使之生效: ldconfig -v
④安装httpd-devel yum -y install httpd-devel 这一步非常重要,不安装这个,后面没有办法加--with-apxs2参数的,这个参数用于生成libphp7.so并安装至httpd,也就是apache的指定目录。 在将编译参数–with-apxs2的路径改成–with-apxs2=/usr/bin/apxs 注意,这里的–with-apxs2是指apxs程序所在的路径,并不是生成*.so文件的存放路径。有的文章使用这个路径–with-apxs2=/usr/local/apache2/bin/apxs,代表apache在编译时就让apache自带apxs程序。
⑤编译PHP7 好了,做了这么多准备工作,终于可以编译了。
(1)下载php源码 打开下载链接:https://www.php.net/downloads.php ,我这里下载的是最新的7.3.10。 或者直接使用下面的链接:
1 wget https://www.php.net/distributions/php-7.3.10.tar.gz
 
(2)解压 1 2 tar -xvjf php-7.3.10.tar.gzcd  php-7.3.10
 
因为需要使用www用户来运行php-fpm。
(3)预编译 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ./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指定了你相应安装的目录,这个可以自行设定。
(4)编译和安装 1 make -j4 && make install
 
⑤添加环境变量 将php的路径添加至环境变量。
 
添加以下内容到最后:
1 2 PATH=$PATH :/usr/local/php/binexport  PATH
 
刷新环境变量:
 
⑥编辑配置文件 1 2 3 4 mkdir  -p /usr/local/php/conf/cp  php.ini-production /usr/local/php/conf/php.inicp  /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.confcp  /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
 
⑦设置开机启动和验证服务 1 2 3 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
1 2 3 4 5 6 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端口就是成功了。
⑧配置apapche让其支持php-fpm (1)查看apache模块配置 检查/etc/httpd/conf.modules.d目录下的00-proxy.conf配置信息,要确保mod_proxy.so和mod_proxy_fcgi.so已被apache成功加载。
(2)修改apache配置 这一步非常重要,不正确配置的话apache还是无法启动PHP7 
1 vim /etc/httpd/conf/httpd.conf
 
如果php-fpm使用的是TCP socket,那么在httpd.conf末尾加上:
1 2 3 <FilesMatch \.php$>          SetHandler "proxy:fcgi://127.0.0.1:9000" </FilesMatch>
 
如果用的是unix socket,那么httpd.conf末尾加上:
1 2 3 4 5 6 7 <Proxy "unix:/dev/shm/php-fpm.sockfcgi://php-fpm" >      ProxySet  disablereuse=off </Proxy> <FilesMatch \.php$>      SetHandler  proxy:fcgi://php-fpm</FilesMatch> 
 
⑨验证PHP版本 查看 PHP版本,验证一下是否安装成功:php -v。
1 2 3 PHP  7 .3 .10  (cli) (built: Oct 19  2019  14 :53 :20 ) ( ZTS )Copyright  (c) 1997 -2018  The PHP GroupZend  Engine v3.3 .10 , Copyright (c) 1998 -2018  Zend Technologies
 
⑩验证PHP在apache上能否运行 因为云主机上准备不止搭建一个网站,所以需要配置根据域名的多网站,即输入不同的域名能访问不同的网站。 打开Apache的配置文件vim /etc/httpd/conf/httpd.conf 翻到最后可以看到IncludeOptional conf.d/*.conf, 意思/etc/httpd/conf.d目录下所有以.conf结尾的文件都可以用被导入最终的配置,这样可以使主配置文件更简洁,降低修改配置后异常不能恢复的风险。 这时候可以在/etc/httpd/conf.d目录下新建一个virtualhost.conf的文件,用于配置虚拟主机。 输入以下命令,指定域名和主目录:
1 2 3 4 5 6 7 8 9 10 11 12 <VirtualHost *:80>  ServerName www.shangyexin.com  DocumentRoot "/home/php"  DirectoryIndex index.html index.php  <Directory "/home/php">   Options -Indexes +FollowSymlinks   AllowOverride All   Require all granted  </Directory> </VirtualHost>
 
我们去指定目录先创一个php版本测试文件:
1 2 cd  /home/php vim index.php
 
写入下面的内容:
 
重启httpd服务器:
 
这时候如果能够看到下面这样的PHP版本信息,则代表PHP安装完成且同apache配置完毕!   
Tip : OK后记得删除virtualhost.conf配置文件,防止与后面的配置冲突。