在CentOs中不使用lnmp一键包搭建WordPress环境
前言
之前利用GitHubpages搭建过静态博客,因为不能愉快的使用PHP一直令我十分难受。这几天就想着用WordPress搭个博客出来。于是兴高采烈的买了vps和域名,开始了博客搭建之旅。 之前看到的教程里,大多数都使用了lnmp一键包安装Nginx,PHP和MySQL,虽然方便,但是有很多具体的配置没法具体实现,可以说是后患无穷,于是我下定决心,一个一个地自己手动配置。
过程
1.远程连接vps
这里我选择了Xshell工具,选择新建会话后,填写主机ip,在用户身份验证里依次填写主机商提供的用户名和密码创建新的会话,设置正确的话,就可以正常访问到远程vps。
2.配置Nginx
1.安装环境配置
1 2 3 4 |
yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre-devel sudo groupadd -r nginx sudo useradd -s /sbin/nologin -g nginx -r nginx |
2.远程下载Nginx安装包:
访问nginx官网,复制最新版本Nginx下载链接,使用指令:
1 2 |
wget http://nginx.org/download/nginx-1.13.10.tar.gz |
下载Nginx安装包。我的版本是nginx-1.13.10
3.下载完成后,解压安装包:
1 2 |
tar -zxvf nginx-1.13.10.tar.gz |
配置基础环境,使用指令
1 2 |
./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --user=nginx --group=nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_v2_module |
执行之后,记得make && make install确认!!!!
4.编写nginx.services文件
1 2 |
vi /lib/systemd/system/nginx.service |
写入如下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target |
3.安装配置PHP
1.配置安装环境
1 2 3 4 5 6 |
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm yum install epel-release -y yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel libc-client-devel ln -s /usr/lib64/libc-client.so /usr/lib/libc-client.so |
2.远程下载安装PHP并解压
1 2 3 |
wget http://php.net/distributions/php-7.2.3.tar.gz tar -zxvf php-7.2.3.tar.gz |
3.基础环境配置
进入安装PHP的文件夹,执行如下指令:
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
./configure \ --prefix=/usr/local/php \ --with-config-file-path=/etc \ --enable-fpm \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ --enable-inline-optimization \ --disable-debug \ --disable-rpath \ --enable-shared \ --enable-soap \ --with-libxml-dir \ --with-xmlrpc \ --with-openssl \ --with-mcrypt \ --with-mhash \ --with-pcre-regex \ --with-sqlite3 \ --with-zlib \ --enable-bcmath \ --with-iconv \ --with-bz2 \ --enable-calendar \ --with-curl \ --with-cdb \ --enable-dom \ --enable-exif \ --enable-fileinfo \ --enable-filter \ --with-pcre-dir \ --enable-ftp \ --with-gd \ --with-openssl-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib-dir \ --with-freetype-dir \ --enable-gd-native-ttf \ --enable-gd-jis-conv \ --with-gettext \ --with-gmp \ --with-mhash \ --enable-json \ --enable-mbstring \ --enable-mbregex \ --enable-mbregex-backtrack \ --with-libmbfl \ --with-onig \ --enable-pdo \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-zlib-dir \ --with-pdo-sqlite \ --with-readline \ --enable-session \ --enable-shmop \ --enable-simplexml \ --enable-sockets \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-wddx \ --with-libxml-dir \ --with-xsl \ --enable-zip \ --enable-mysqlnd-compression-support \ --with-pear \ --enable-opcache \ --with-imap=imap \ --with-kerberos \ --with-imap-ssl |
记得make && make install确认!!!!!!!
4.修改profile
1 2 |
vi /etc/profile |
在底部添加:
1 2 3 |
PATH=$PATH:/usr/local/php/bin export PATH |
使用source /etc/profile
应用更改
5.添加到启动列表
1 2 3 4 5 6 |
cp php.ini-production /etc/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 /usr/local/sbin/php-fpm chmod +x /usr/local/sbin/php-fpm |
6.修改php-fpm.service
使用vi打开 /lib/systemd/system/php-fpm.service,进行以下编辑
1 2 3 4 5 6 7 8 9 10 11 |
[Unit] Description=PHP FastCGI process manager After=local-fs.target network.target nginx.service [Service] PIDFile=/run/php/php-fpm.pid ExecStartPre=/bin/mkdir --parents /run/php ExecStart=/usr/local/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf Type=simple [Install] WantedBy=multi-user.target |
安装配置MySQL
1.远程下载安装MySQL
1 2 3 4 5 |
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm md5sum mysql57-community-release-el7-9.noarch.rpm sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm sudo yum install mysql-server |
基本方法和之前一样,注意一下这里多了一个md5的校验
2.启动MySQL
1 2 3 |
sudo systemctl status mysqld sudo grep 'temporary password' /var/log/mysqld.log //获取一个临时密码 |
3.配置MySQL
1 2 |
sudo mysql_secure_installation |
这里开始安装MySQL,系统会提示:
1 2 3 4 |
The existing password for the user account root has expired. Please set a new password. New password: |
这里的密码必须包括12个字符,其中至少一个大写字母,一个小写字母,一个数字,一个特殊符号。 输入完毕后,shell弹出提示:
1 2 3 |
Estimated strength of the password: 100 Change the password for root ? (Press y|Y for Yes, any other key for No) : |
再选择yes后,又会弹出一个选项,我都选择了默认值。 这样就算配置好了MySQL,如果不放心,可以尝试登陆
1 2 |
mysql -u xxxx -p |
后记
至此,我手动配置完成了Nginx,PHP和MySQL,让我非常有成就感,拿出来分享给大家,也算是一个小小的教程吧。下面的PS里面有我遇到的几个问题,希望有帮助。
PS:
1.安装PHP时因内存写满而中止安装 解决方法:申请swap https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-centos-7 这份文档写的很清楚,救了我一命啊
2.IP被墙 因为我是在vultr上购买的vps,经常会出现ip被墙的情况,下面给出一个可行的解决方案。 就vultr而言,利用主机商提供的snapshot创建一个镜像,记住或修改ssh解析的密码之后,删除被墙的机子,然后重新开一台机器,在选择系统时选择刚才备份的镜像,直到开出一台能用的ip为之。 当然也可以联系客服修改ip,这种方法比较麻烦,除非数据很大,不建议使用