Centos 中搭建LNMP环境

xiaoxiao2021-02-28  98

php 安装

准备工作(必要的依赖包)

yum -y install bzip2-devel curl-devel freetype-devel gcc libjpeg-devel libpng-devel libxslt-devel libxml2-devel openssl-devel pcre-devel pcre-devel zlib-devel

本地下载安装包

http://php.net/get/php-7.0.11.tar.gz/from/a/mirror (下载php-7.0.11.tar.gz)

将安装包远程传到服务器上

scp php-7.0.11.tar.gz username@ip:/usr/local/php-7.0.11.tar.gz

解压安装包

tar -zxvf php-7.0.11.tar.gz

注:如果报错   gzip: stdin: not in gzip format   tar: Child returned status 1   tar: Error is not recoverable: exiting now      原因 : 这个压缩包没有用gzip格式压缩,所以不用加z指令!   tar -xvf php-7.0.11.tar.gz

配置安装变量

./configure –prefix=/usr/local/php –with-curl –with-freetype-dir –with-gd –with-gettext –with-iconv-dir –with-kerberos –with-libdir=lib64 –with-libxml-dir –with-mysqli –with-openssl –with-pcre-regex –with-pdo-mysql –with-pdo-sqlite –with-pear –with-png-dir –with-jpeg-dir –with-xmlrpc –with-xsl –with-zlib –with-bz2 –with-mhash –enable-fpm –enable-bcmath –enable-libxml –enable-inline-optimization –enable-gd-native-ttf –enable-mbregex –enable-mbstring –enable-opcache –enable-pcntl –enable-shmop –enable-soap –enable-sockets –enable-sysvsem –enable-sysvshm –enable-xml –enable-zip

注:./configure –prefix=/usr/local/php 是安装路径,可以改成自己喜欢的安装路径。

编译源码

//在解压目录执行编译命令:make cd php-7.0.11 make

注:编译会花费一些时间,耐心等待即可。编译完成的最后会提示你执行make test命令。就是对上一步 make 的检查,要确保 make 是没有错误的,也就是这一步的 test、check要全部是 OK 的,error 为0。

安装php

make install

配置PHP

将PHP源码包(/usr/local/php-7.0.11)中的php.ini-development文件复制到/usr/local/php/下,更名为php.ini。

cp /usr/local/php-7.0.11/php.ini-development /usr/local/php/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

配置php.ini

cgi.fix_pathinfo=0

启动php-fpm

/usr/local/php/sbin/php-fpm

检查php-fpm工作情况

php-fpm 服务器默认的端口是9000,查看9000端口是否有进程被监听

netstat -tln | grep 9000


安装Nginx

准备工作必要依赖包安装

在安装nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel。

yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

本地下载安装包

https://nginx.org/download/ (下载nginx-1.9.9.tar.gz)

将安装包远程传到服务器上

scp php-7.0.11.tar.gz username@ip:/usr/local/nginx-1.9.9.tar.gz

解压安装包

tar -zxvf nginx-1.9.9.tar.gz

配置/编译

cd nginx-1.9.9 //注:编译 (地址可以自己定义) ./configure --prefix=/etc/nginx make make install

检测安装是否成功

cd /etc/nginx/sbin ./nginx

如果在这个环节报错: nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (2: No such file or directory) 2016/09/13 19:08:56 [emerg] 6996#0: open() "/usr/local/nginx/logs/access.log" failed (2: No such file or directory)

原因分析:nginx/目录下没有logs文件夹

mkdir logs chmod 700 logs

监听查询查看

ps aux|grep nginx

直接输入IP地址,页面渲染为:

【异常处理】 如果没有上面的渲染页面,我们则需要Telnet 连接下: telnet Ip地址 80 如果报连接失败,则说明服务器的80端口是打不开的。 【解决方案】 firewall-cmd –query-port=80/tcp

说明80端口还真没打开呀! (⊙o⊙)开启80端口走起! firewall-cmd –add-port=80/tcp –permanent 注: –permanent #永久生效,没有此参数重启后失效 o( ̄ヘ ̄o#)重启防火墙 systemctl restart firewalld

(^o^)/~刷新浏览器!

设置Nginx开机启动

vim /etc/rc.d/rc.local #开机启动 /etc/nginx/sbin/nginx

注:所有的开机启动都要在 /etc/rc.d/rc.local 中

配置Nginx

编辑nginx配置文件/etc/nginx/conf/nginx.conf,主要修改nginx的server {}配置块中的内容,修改location块,追加index.php让nginx服务器默认支持index.php为首页:

然后配置.php请求被传送到后端的php-fpm模块,默认情况下php配置块是被注释的,此时去掉注释并修改为以下内容:

主要修改的就是fastcgi_param设置为: SCRIPT_FILENAME $document_root$fastcgi_script_name 修改完这些保存并退出,然后重启nginx: /etc/nginx/sbin/nginx -s reload

检测是否配置成功

在nginx下的html目录下创建test.php文件,打印一下php配置:

touch test.php vi test.php phpinfo();

访问PHP文件如果出现PHP配置,则nginx配置成功


MySQL安装

【运行环境】查看自己主机的属性(选择适合主机的MySQL包)

more /etc/issue

【安装方法】阐述

安装MySQL主要有两种方法:

第一种是通过源码自行编译安装,这种适合高级用户定制MySQL的特性,这里不做说明;

第二种是通过编译过的二进制文件进行安装。


二进制文件安装的方法又分为两种:

一种是不针对特定平台的通用安装方法,使用的二进制文件是后缀为.tar.gz的压缩文件;

第二种是使用RPM或其他包进行安装,这种安装进程会自动完成系统的相关配置,所以比较方便。

【检查安装包】检查是否已安装

rpm -qa | grep -i mysql *注:grep的-i选项表示匹配时忽略大小写

可见已经安装了库文件,应该先卸载,不然会出现覆盖错误。注意卸:载时使用了–nodeps选项,忽略了依赖关系:

rpm -e mysql-libs-5.1.73-7.el6.x86_64 --nodeps

再次运行上面命令(rpm -qa | grep -i mysql)的时候 将不会再显示库文件。

【添加用户组】

添加mysql组和mysql用户,用于设置mysql安装目录文件所有者和所属组。

groupadd mysql useradd -r -g mysql mysql

*注:useradd -r参数表示mysql用户是系统用户,不可用于登录系统。

【二进制文件安装】

下载安装包 点击下载链接地址

下载安装包mysql-5.7.17-linux-glibc2.5-i686.tar.gz 到本地

上传到服务器

scp mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz user@ip:/usr/local

解压缩安装包

tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

更改目录名称(太长了)

mv mysql-5.7.17-linux-glibc2.5-x86_64 mysql

进入mysql文件夹,也就是mysql所在的目录,并更改所属的组和用户。

cd mysql chown -R mysql . chgrp -R mysql .

开始作死安装o( ̄ヘ ̄o#)

执行mysql_install_db脚本,对mysql中的data目录进行初始化并创建一些系统表格。注意mysql服务进程mysqld运行时会访问data目录,所以必须由启动mysqld进程的用户(就是我们之前设置的mysql用户)执行这个脚本,或者用root执行,但是加上参数–user=mysql。

cd mysql chown -R mysql . chgrp -R mysql .

配置文件o( ̄√ ̄o#)

cd support-files //复制my.cnf 到 /etc/my.cnf (mysqld启动时自动读取) cp my-default.cnf /etc/my.cnf *注意:如果你在安装时Linux虚拟机时同时安装了默认的mysql,此时操作以上步骤,终端将会提示你文件已存在是否覆盖,输入yes覆盖即可。 //配置数据库编码 vi /etc/my.cnf //在这份文件中可以添加以下配置信息(如果有修改即可) [mysql] default-character-set=utf8 [mysqld] default-storage-engine=INNODB character_set_server=utf8 //复制mysql.server 到/etc/init.d/ 目录下【目的想实现开机自动执行效果】 执行命令:cp mysql.server /etc/init.d/mysql (mysql是服务名) //修改 /etc/init.d/mysql 参数 vi /etc/init.d/mysql //给与2个目录位置 basedir=/usr/local/mysql datadir=/usr/local/mysql/data

mysql用户管理o( ̄ヘ ̄o#)

 passwd mysql #给mysql用户设置一个密码  #给目录/usr/local/mysql 更改拥有者    chown -R mysql:mysql /usr/local/mysql/

初始化 mysql 的数据库o( ̄ヘ ̄o#)

cd mysql/bin //初始化 ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

注: 生成出一个data目录,代表数据库已经初始化成功 并且mysql的root用户生成一个临时密码:SHNq8Qvd2g>L(最好先记录这个临时密码) 记住最后的root@localhost:密码

给数据库加密 ./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

启动MySQL/检查MySQLo( ̄ヘ ̄o#)

给数据库加密 ./mysql_ssl_rsa_setup –datadir=/usr/local/mysql/data`

启动mysql(为了不让进程卡主,可在启动mysql的命令后加上&代表此进程在后台运行) ./mysqld_safe --user=mysql &

检查ps -ef | grep mysql

登录MySQL数据库咯O(∩_∩)O哈哈 //登录 ./mysql -uroot -p回车后输入之前的临时密码 //修改密码 set password=password('新密码');
转载请注明原文地址: https://www.6miu.com/read-35223.html

最新回复(0)