[目录] 建议顺序阅读 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
配置文件,防止与后面的配置冲突。