最近需要安装WordPress当个人博客,正好双十一抢购了一台云服务器,于是部署了一下PHP7和Mysql5.7,下面是执行步骤,命令和遇到的一些问题

其实一开始是打算完全离线部署的,这样组件可以自己控制,但是最后PHP7和CentOS7的离线版本总有个组件无法安装上,最后放弃了用的YUM方式安装的组件

一、安装Nginx

目标版本:1.16.1

1.把包放在一个文件夹中,然后运行命令:

2.安装openssl(可跳过)

3.创建OpenSSL的软链接

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig -v

4.然后开始安装nginx:

tar -zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module
make
make install
#设置Nginx配置文件位置
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# 添加自启动(nginx文件为service启动文件)
mv nginx /etc/rc.d/init.d/nginx
chmod a+x /etc/init.d/nginx
chkconfig --add nginx

5.安装MYSQL5.7

#查看旧包并卸载
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
#解压安装
tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.27-linux-glibc2.12-x86_64 /usr/local/mysql
#为centos添加mysql用户组和mysql用户(-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限)
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
#修改当前目录拥有者为新建的mysql用户
cd /usr/local/mysql
#创建目录并设置权限
mkdir tmp
mkdir data
mkdir log
touch log/error.log
chown -R mysql:mysql ./*
#Mysql启动命令为
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.pid --tmpdir=/usr/local/mysql/tmp
#下面开始配置Mysql的服务
# 复制启动脚本到资源目录
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
# 增加mysqld服务控制脚本执行权限
chmod +x /etc/rc.d/init.d/mysqld
# 将mysqld服务加入到系统服务
chkconfig --add mysqld
# 检查mysqld服务是否已经生效
chkconfig --list mysqld
#复制配置文件my.cnf
cp /usr/local/src/my.cnf /etc/my.cnf
chmod a+x /etc/my.cnf
# 切换至mysql用户,启动mysql
service mysqld start
#/etc/profile中配置环境变量
export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile
后续就可以使用Mysql客户端去登录操作了
6.安装PHP7
#先安装Libmcrypt
tar -zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make
make install #libmcript默认安装在/usr/local
#设置软链接并加入动态库中
ln -s /usr/local/bin/libmcrypt_config /usr/bin/libmcrypt_config
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/lib:LD_LIBRARY_PATH
安装mhash
tar -zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make
make install
安装mcrypt
tar -zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
./configure
make
make install
#安装cmake
tar xzvf cmake-3.3.2.tar.gz
mv cmake-3.3.2 /usr/local/cmake
cd /usr/local/cmake
./bootstrap --prefix=/usr
gmake && make install
#安装libzip
tar -zxvf libzip-1.5.2.tar.gz
cd libzip-1.5.2
mkdir build
cd build
cmake ..
make && make install
#安装libzip
tar -zxvf libzip-1.2.0.tar.gz
cd libzip-1.2.0
./configure
make -j4 && make install

嗯。。。。如果上述无法成功安装,但是服务器可以联网的话,可以使用下面的Yum安装方式安装这些组件

#yum安装所需组件
groupadd www
useradd -g www www
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 gdbm-devel
#如果遇到configure: error: Cannot find ldap libraries in /usr/lib错误,执行下面语句
cp -frp /usr/lib64/libldap* /usr/lib/
echo '/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64'>>/etc/ld.so.conf
ldconfig -v

下面开始安装PHP7

tar xzvf php-7.3.12.tar.gz
cd php-7.3.12
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-fpm-user=www \
--with-fpm-group=www \
--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 \
--enable-fpm \
--enable-mysqlnd \
--enable-xml \
--enable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-intl \
--enable-ftp \
--enable-exif \
--enable-gd-jis-conv \
--enable-pcntl \
--enable-sockets \
--enable-zip \
--enable-soap \
--enable-fileinfo \
--enable-opcache \
--enable-maintainer-zts
make
make install
#配置环境变量
echo 'export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:/usr/local/mysql/bin
export PATH=$PATH:$NGINX_HOME/sbin
export PATH=$PATH:/usr/local/php/bin
' >>/etc/profile
source /etc/profile
#复制PHP配置文件(因为要配合Nginx所以需要运行php-fpm)
cp php.ini-development /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

最后贴一下Nginx里面和PHP的配置

server {
listen 80;
server_name xxx.com;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
root /wordpress;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
client_max_body_size 50m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数,
}
}

附上相关的组件或配置文件

MySQL5.7配置文件my.cnf

大小:3 kb

版本:v5.7

已发布:2020年4月28日

PHP7安装组件cmake

大小:6 MB

版本:v3.3.2

已发布:2020年4月30日

PHP7安装组件libmcrypt

大小:1 MB

版本:v2.5.8

已发布:2020年4月30日

PHP7安装组件libzip

大小:1 MB

版本:v1.5.2

已发布:2020年4月30日

PHP7安装组件mcrypt

大小:461 kb

版本:v2.6.8

已发布:2020年4月30日

PHP7安装组件mcrypt

大小:461 kb

版本:v2.6.8

已发布:2020年4月30日

PHP7安装组件mhash

大小:1 MB

版本:v0.9.9.9

已发布:2020年4月30日