安装nginx
首先更新系统软件 1
# yum update
安装
安装nginx源
1
# yum localinstall http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
安装nginx
1
yum install nginx
启动nginx
1
2# service nginx start
Redirecting to /bin/systemctl start nginx.service访问http://你的ip/
配置
1 | vim /etc/nginx/conf.d/service.conf |
安装MySQL5.7.*
安裝
安装mysql源
1
# yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
安装mysql
1
yum install mysql-community-server
安装mysql的开发包,以后会有用
1
yum install mysql-community-devel
启动mysql
1
service mysqld start
查看mysql启动状态
1
2
3
4# service mysqld status
出现pid
证明启动成功获取mysql默认生成的密码
1
2# grep 'temporary password' /var/log/mysqld.log
选中的就是密码。换成自己的密码
1
2
3
4
5
6
7# mysql -uroot -p
mysql> set global validate_password_policy=0; # 默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
mysql> set global validate_password_length=1; # validate_password_number_count指定了密码中数据的长度,validate_password_special_char_count指定了密码中特殊字符的长度,validate_password_mixed_case_count指定了密码中大小字母的长度。这些参数,默认值均为1,所以validate_password_length最小值为4,如果你显性指定validate_password_length的值小于4,尽管不会报错,但validate_password_length的值将设为4。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPasdfs4!';
mysql> quit;
# mysql -uroot -p
编译安装php7.0.1
安装
下载php7源码包
1
# cd /root & wget -O php7.tar.gz http://cn2.php.net/get/php-7.1.2.tar.gz/from/this/mirror
解压源码包
1
# tar -xvf php7.tar.gz
进入目录
1
# cd php-7.0.1
安装php依赖包
1
# yum 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
编译配置,这里如果上一步的某些依赖包没有安装好,就会遇到很多configure error,我们一一解决,安装上相关软件开发包就可以
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# ./configure \
--prefix=/usr/local/php \
--with-config-file-path=/etc \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--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编译与安装
1
# make && make install
添加 PHP 命令到环境变量
1
2
3
4
5
6
7
8
9# vim /etc/profile
在末尾加入
PATH=$PATH:/usr/local/php/bin
export PATH
要使改动立即生效执行
# source /etc/profile查看环境变量
1
2# echo $PATH
# php -v
配置
配置php-fpm
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/init.d.php-fpm /etc/init.d/php-fpm
# chmod +x /etc/init.d/php-fpm启动php-fpm
1
# /etc/init.d/php-fpm start
异常处理 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
73
74
75
76
77
78
79
80
81
82
83configure error:
1.configure: error: xml2-config not found. Please check your libxml2 installation.
解决:
# yum install libxml2 libxml2-devel</span>
2.configure: error: Cannot find OpenSSL's <evp.h>
解决:
# yum install openssl openssl-devel</span>
3.configure: error: Please reinstall the BZip2 distribution
解决:
# yum install bzip2 bzip2-devel</span>
4.configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/
解决:
# yum install libcurl libcurl-devel</span>
5.If configure fails try --with-webp-dir=<DIR> configure: error: jpeglib.h not found.
解决:
# yum install libjpeg libjpeg-devel</span>
6.If configure fails try --with-webp-dir=<DIR>
checking for jpeg_read_header in -ljpeg... yes
configure: error: png.h not found.
解决:
# yum install libpng libpng-devel</span>
7.If configure fails try --with-webp-dir=<DIR>
checking for jpeg_read_header in -ljpeg... yes
checking for png_write_image in -lpng... yes
If configure fails try --with-xpm-dir=<DIR>
configure: error: freetype-config not found.
解决:
# yum install freetype freetype-devel</span>
8.configure: error: Unable to locate gmp.h
解决:
# yum install gmp gmp-devel</span>
9.configure: error: mcrypt.h not found. Please reinstall libmcrypt.
解决:
# yum install libmcrypt libmcrypt-devel
10.configure: error: Please reinstall readline - I cannot find readline.h
解决:
# yum install readline readline-devel</span>
11.configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
解决:
# yum install libxslt libxslt-devel</span>
修改服务运行用户
修改nginx的运行角色
1 | cd /etc/nginx |
修改php的运行角色
1 | cd /etc/php/7.0/fpm/pool.d/ |
test用户是杜撰出来的根据自己的当前用户修改
重启服务
1 | service nginx restart |
配置服务开启启动
开机自启动nginx,php-fpm(其他服务类似)
centos 7以上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。
Systemd服务文件以.service结尾,比如现在要建立nginx为开机启动,如果用yum install命令安装的,yum命令会自动创建nginx.service文件,直接用命令systemcel enable nginx.service设置开机启动即可。1
systemcel enable nginx.service
源码安装的手动建立nginx.service服务文件
在系统服务目录里创建nginx.service文件vi /lib/systemd/system/nginx.service
写入以下内容(路径改成自己的)1
2
3
4
5
6
7
8
9
10
11[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/www/lnmp/nginx/sbin/nginx -c /www/lnmp/nginx/conf/nginx.conf
ExecReload=/www/lnmp/nginx/sbin/nginx -s reload
ExecStop=/www/lnmp/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
在系统服务目录里创建php-fpm.service文件vi /lib/systemd/system/php-fpm.service
写入以下内容(路径改成自己的)1
2
3
4
5
6
7
8
9[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/www/lnmp/php/sbin/php-fpm
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
测试并加入开机自启
先关闭nginx,php-fpm
使用以下命令开启systemctl start nginx.service
#如果服务是开启状态,使用此命令会启动失败。systemctl start php-fpm.service
开启成功,将服务加入开机自启1
2systemctl enable nginx.service #注意后面不能跟空格
systemctl enable php-fpm.service
重启服务器,查看是否启动1
2
3shutdown -r now #重启
systemctl list-units --type=service #查看运行的服务
其他命令1
2
3
4
5
6systemctl start nginx.service #启动nginx服务
systemctl enable nginx.service #设置开机自启动
systemctl disable nginx.service #停止开机自启动
systemctl status nginx.service #查看服务当前状态
systemctl restart nginx.service #重新启动服务
systemctl list-units --type=service #查看所有已启动的服务