LNMP(linux+nginx+mysql+php)环境搭建_1
2016-08-11 22:15
666 查看
LNMP是web应用常用环境搭建。由于是在linux上安装,会出现各种各样诡异的问题,写次文章的目的是让各位需要搭建此环境的小伙伴少走一些弯路!
1.编译方式安装Nginx
提示:编译安装一定要先确保linux安装有gcc 和gcc-c++,使用yum -y install gcc gcc-c++即可,过程中可能出现的错误尽量贴出来了,没有涉及到的自行把错误贴到www.baidu.com,64位机下X86_64的包,32位下i386的包
①安装Nginx所需要的依赖包以及Nginx
· gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ )
· rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ )
·ssl 功能需要 openssl 库 ( 下载: http://www.openssl.org/ )
·Nginx包 (下载: http://nginx.org/en/download.html)
依赖包安装顺序依次为:openssl、zlib、pcre, 然后安装Nginx包.
下载包:
首先,创建包的存储目录
mkdir -p /home/tools
进入目录
cd /home/tools
下载相应的包
例如:wget -q http://nginx.org/download/nginx-1.6.3.tar.gz url直接在网页中右键复制下载链接粘贴到xshell中即可。
openssl-fips-2.0.2.tar.gz
zlib-1.2.7.tar.gz
pcre-8.21.tar.gz
nginx-1.2.6.tar.gz
②依次安装
-安装openssl-fips-2.0.2.tar.gz
[root@localhost tools]# tar -zxvf openssl-fips-2.0.2.tar.gz
[root@localhosttools]# cd openssl-fips-2.0.2
[root@localhostopenssl-fips-2.0.2]# ./config
[root@localhostopenssl-fips-2.0.2]#make
[root@localhostopenssl-fips-2.0.2]# make install
-安装zlib-1.2.7.tar.gz
[root@localhosttools]# tar -zxvf zlib-1.2.7.tar.gz
[root@localhosttools]# cd zlib-1.2.7
[root@localhost zlib-1.2.7]# ./configure
[root@localhost zlib-1.2.7]# make
[root@localhost zlib-1.2.7]# make install
-安装pcre-8.21.tar.gz
[root@localhosttools]# tar -zxvf pcre-8.21.tar.gz
[root@localhosttools]# cd pcre-8.21
[root@localhost pcre-8.21]# ./configure
[root@localhost pcre-8.21]# make
[root@localhost pcre-8.21]# make install
-安装 nginx-1.2.6.tar.gz
[root@localhosttools]#useradd nginx
-s /sbin/nologin -M
[root@localhosttools]# tar -zxvf nginx-1.2.6.tar.gz
[root@localhosttools]# cd nginx-1.2.6
[root@localhost nginx-1.2.6]# ./configure --user=nginx --group=nginx --prefix=/application/nginx-1.2.6/
--with-pcre=../pcre-8.21 --with-zlib=../zlib-1.2.7 --with-openssl=../openssl-fips-2.0.2
[root@localhost nginx-1.2.6]#
make
[root@localhost nginx-1.2.6]# make install
[root@localhost nginx-1.2.6]#
ln -s /application/nginx-1.2.6 /application/nginx
③启动并检查安装结果
检查语法错误
[]#/application/nginx/sbin/nginx -t
启动,可能会有其他程序占用80端口,比如httpd,kill进程在启动
[]#/application/nginx/sbin/nginx
查看启动是否成功
[]#netstat -lnt |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN #即为成功
浏览器检查实际效果
浏览器打开http://主机ip,使用可以访问到此主机的计算机上的浏览器即可,显示Welcom to nginx!
表示成功
或者linux上wget 127.0.01 或者 curl 127.0.0.1 返回内容为一包含welcome to nginx 的html
表示成功
④访问不了故障排除
检查防火墙:/etc/init.d/iptables stop #关闭防火墙
检查端口:netstat -lnt |grep 80 #是否是nginx占用,其他程序占用就干死它,重启nginx
服务器本地进行wget http://127.0.0.1测试 客户端检查:ping ip #物理线路检查,排除物理线路
telnet ip 80#服务器端ip端口检查,排除防火墙
客户端浏览器输入ip测试,排除Http协议问题
2.安装mysql
源码安装mysql
①下载包
#cd /home/tools
#wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.51-linux2.6-x86_64.tar.gz #tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz
#mv mysql-5.5.32-linux2.6-x86_64.tar.gz /application/mysql-5.5.32
#ln
/application/mysql-5.5.32
/application/mysql
#cd
/application/mysql
#/bin/cp
support-files/my-small.cnf /etc/my.cnf
②初始化mysql数据库文件
#mkdir -p /application/mysql/data
#chown -R mysql.mysql /application/mysql-5.5.32
#/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql
过程中出现两个OK,表示初始化成功,否则要解决初始化问题
可能出现:ERROR:1004 Can't create fiel'/tmp/#sql300_1_0.frm'(errno:13)
解决办法为处理/tmp目录
ls -ld /tmp
chmod -R 1777 /tmp/
③配置并启动mysql
#cp support-files/mysql.server /etc/init.d/mysqld
#chmod +x /etc/init.d/mysqld
#sed -i 's#/usr/local/mysql#/application/mysql#g'/application/mysql/bin/mysqld_safe /etc/init.d/mysqld
#/etc/init.d/mysqld start
Starting Mysql..SUCCESS
检查是否启动
#netstat -lnt|grep msyql
tcp 0 0.0.0.0:3306 0.0.0.0:* LISTEN 9466/mysqld
开机启动
#chkconfig --add mysqld
#chkconfig mysqld on
#chkconfig --list mysqld
配置mysql命令全局使用路径
#echo 'export PATH=/application/mysql/bin:$PATH' >> /ect/profile
#source /etc/profile
④登录mysql
正常来说,直接#mysql可以进入数据库系统,身份是root初始没有密码
但是如果出现:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (usingpassword: YES)
解决办法:#/etc/init.d/mysql stop
#mysqld_safe --user=mysql--skip-grant-tables--skip-networking &
#mysql -u root mysql
#mysql> UPDATE user SETPassword=PASSWORD(’your_new_password’)where USER=’root’;
#FLUSH PRIVILEGES;
#quit
#/etc/init.d/mysql restart
#mysql -uroot -p
Enter password: <输入新设的密码your_new_password>
⑤创建mysql用户并授权
#mysql -uroot -p
输入密码
mysql>create user 'name'@'%' identified by 'password';
name为用户名,password为用户密码,%表示该用户可以在任意的ip地址登录系统,也替换%为指定特定ip地址。
mysql>grant all on *.* to 'name'@'%';
授权,all表示所有权限,可以指定为select...,on后面表示权限应用的数据库和表,第一个*表示任意数据库,第二个*表示任意表
to为授权用户
mysql>flush privileges
mysql>quit
#mysql -u name -p
password
mysql>
如果网络中有windows主机,可以使用navicat连接mysql数据库,可以测试远程连接是否正常。
3.安装PHP
安装php之前确保mysql和nginx安装成功。并且启动服务,检测启动成功,检测方法如前所述。
①安装php所需要的lib库
#yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel -y
#yum install libpng-devel gd-devel libcurl-devel libxslt-devel -y
编译安装libiconv-devel
#cd /home/tools
#wget http://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz
#tar zxf libiconv-1.14.tar.gz
#cd libiconv-1.14
#./configure --prefix=/usr/local/libiconv
#make
#make install
安装libmcrypt库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install libmcrypt-devel
安装mhash库
yum -y install libmcrypt-devel
安装mcrypt
yum -y install mcrypt
②开始安装php,我的版本是php5.6,5.5以上完全适用,5.3之前版本只编译参数不同,其他几乎一样
#cd /home/tools
#wget http://cn2.php.net/get/php-5.6.24.tar.gz/from/this/mirror
#tar zxf php-5.6.24.tar.gz
#cd php-5.6.24
编译参数!!!!!!!!!!!!
#./configure \
--prefix=/application/php5.6.24 \
--with-mysql=/application/mysql \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--with-curlwrappers \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-short-tags \
--enable-zend-mutilbyte \
--enable-static \
--with-xsl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-ftp \
--enable-opcache=no
#ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/
#touch ext/phar/phar.phar
#make
#make install
make的成功标志为:bulid complete!Don't forget to run 'make test'
make install 成功标志:installing PDO headers :......
中间出现错误,查看错误原因,自行baidu解决,正常按照步骤走下来不会出现error,linux的脾气谁也说不准!
③配置PHP 配置文件php.ini
#ln -s /application/php5.6.24 /application/php
#ls php.ini*
两个配置文件,一个开发用,一个生产用
#cp php.ini-development /application/php/lib/php.ini
开发时使用这个,出现错误浏览器会有调试信息提示。
#cd /application/php/etc/
#ls
#cp php-fpm.conf.default php-fpm.conf
④启动php服务
#application/php/sbin/php-fpm
检查启动情况
#ps -ef|grep php-fpm
可以看到相应进程已经启动
#lsof -i :9000
默认使用9000端口提供服务,不要让其他程序占用,启动时提示端口占用,杀死占用程序,在启动服务
⑤配置nginx支持php
#cd /application/nginx/conf
#cp nginx.conf nginx.conf.02
#vi nginx.conf
修改配置文件
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
转第二篇,LNMP(linux+nginx+mysql+php)环境搭建_2
1.编译方式安装Nginx
提示:编译安装一定要先确保linux安装有gcc 和gcc-c++,使用yum -y install gcc gcc-c++即可,过程中可能出现的错误尽量贴出来了,没有涉及到的自行把错误贴到www.baidu.com,64位机下X86_64的包,32位下i386的包
①安装Nginx所需要的依赖包以及Nginx
· gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ )
· rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ )
·ssl 功能需要 openssl 库 ( 下载: http://www.openssl.org/ )
·Nginx包 (下载: http://nginx.org/en/download.html)
依赖包安装顺序依次为:openssl、zlib、pcre, 然后安装Nginx包.
下载包:
首先,创建包的存储目录
mkdir -p /home/tools
进入目录
cd /home/tools
下载相应的包
例如:wget -q http://nginx.org/download/nginx-1.6.3.tar.gz url直接在网页中右键复制下载链接粘贴到xshell中即可。
openssl-fips-2.0.2.tar.gz
zlib-1.2.7.tar.gz
pcre-8.21.tar.gz
nginx-1.2.6.tar.gz
②依次安装
-安装openssl-fips-2.0.2.tar.gz
[root@localhost tools]# tar -zxvf openssl-fips-2.0.2.tar.gz
[root@localhosttools]# cd openssl-fips-2.0.2
[root@localhostopenssl-fips-2.0.2]# ./config
[root@localhostopenssl-fips-2.0.2]#make
[root@localhostopenssl-fips-2.0.2]# make install
-安装zlib-1.2.7.tar.gz
[root@localhosttools]# tar -zxvf zlib-1.2.7.tar.gz
[root@localhosttools]# cd zlib-1.2.7
[root@localhost zlib-1.2.7]# ./configure
[root@localhost zlib-1.2.7]# make
[root@localhost zlib-1.2.7]# make install
-安装pcre-8.21.tar.gz
[root@localhosttools]# tar -zxvf pcre-8.21.tar.gz
[root@localhosttools]# cd pcre-8.21
[root@localhost pcre-8.21]# ./configure
[root@localhost pcre-8.21]# make
[root@localhost pcre-8.21]# make install
-安装 nginx-1.2.6.tar.gz
[root@localhosttools]#useradd nginx
-s /sbin/nologin -M
[root@localhosttools]# tar -zxvf nginx-1.2.6.tar.gz
[root@localhosttools]# cd nginx-1.2.6
[root@localhost nginx-1.2.6]# ./configure --user=nginx --group=nginx --prefix=/application/nginx-1.2.6/
--with-pcre=../pcre-8.21 --with-zlib=../zlib-1.2.7 --with-openssl=../openssl-fips-2.0.2
[root@localhost nginx-1.2.6]#
make
[root@localhost nginx-1.2.6]# make install
[root@localhost nginx-1.2.6]#
ln -s /application/nginx-1.2.6 /application/nginx
③启动并检查安装结果
检查语法错误
[]#/application/nginx/sbin/nginx -t
启动,可能会有其他程序占用80端口,比如httpd,kill进程在启动
[]#/application/nginx/sbin/nginx
查看启动是否成功
[]#netstat -lnt |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN #即为成功
浏览器检查实际效果
浏览器打开http://主机ip,使用可以访问到此主机的计算机上的浏览器即可,显示Welcom to nginx!
表示成功
或者linux上wget 127.0.01 或者 curl 127.0.0.1 返回内容为一包含welcome to nginx 的html
表示成功
④访问不了故障排除
检查防火墙:/etc/init.d/iptables stop #关闭防火墙
检查端口:netstat -lnt |grep 80 #是否是nginx占用,其他程序占用就干死它,重启nginx
服务器本地进行wget http://127.0.0.1测试 客户端检查:ping ip #物理线路检查,排除物理线路
telnet ip 80#服务器端ip端口检查,排除防火墙
客户端浏览器输入ip测试,排除Http协议问题
2.安装mysql
源码安装mysql
①下载包
#cd /home/tools
#wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.51-linux2.6-x86_64.tar.gz #tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz
#mv mysql-5.5.32-linux2.6-x86_64.tar.gz /application/mysql-5.5.32
#ln
/application/mysql-5.5.32
/application/mysql
#cd
/application/mysql
#/bin/cp
support-files/my-small.cnf /etc/my.cnf
②初始化mysql数据库文件
#mkdir -p /application/mysql/data
#chown -R mysql.mysql /application/mysql-5.5.32
#/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql
过程中出现两个OK,表示初始化成功,否则要解决初始化问题
可能出现:ERROR:1004 Can't create fiel'/tmp/#sql300_1_0.frm'(errno:13)
解决办法为处理/tmp目录
ls -ld /tmp
chmod -R 1777 /tmp/
③配置并启动mysql
#cp support-files/mysql.server /etc/init.d/mysqld
#chmod +x /etc/init.d/mysqld
#sed -i 's#/usr/local/mysql#/application/mysql#g'/application/mysql/bin/mysqld_safe /etc/init.d/mysqld
#/etc/init.d/mysqld start
Starting Mysql..SUCCESS
检查是否启动
#netstat -lnt|grep msyql
tcp 0 0.0.0.0:3306 0.0.0.0:* LISTEN 9466/mysqld
开机启动
#chkconfig --add mysqld
#chkconfig mysqld on
#chkconfig --list mysqld
配置mysql命令全局使用路径
#echo 'export PATH=/application/mysql/bin:$PATH' >> /ect/profile
#source /etc/profile
④登录mysql
正常来说,直接#mysql可以进入数据库系统,身份是root初始没有密码
但是如果出现:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (usingpassword: YES)
解决办法:#/etc/init.d/mysql stop
#mysqld_safe --user=mysql--skip-grant-tables--skip-networking &
#mysql -u root mysql
#mysql> UPDATE user SETPassword=PASSWORD(’your_new_password’)where USER=’root’;
#FLUSH PRIVILEGES;
#quit
#/etc/init.d/mysql restart
#mysql -uroot -p
Enter password: <输入新设的密码your_new_password>
⑤创建mysql用户并授权
#mysql -uroot -p
输入密码
mysql>create user 'name'@'%' identified by 'password';
name为用户名,password为用户密码,%表示该用户可以在任意的ip地址登录系统,也替换%为指定特定ip地址。
mysql>grant all on *.* to 'name'@'%';
授权,all表示所有权限,可以指定为select...,on后面表示权限应用的数据库和表,第一个*表示任意数据库,第二个*表示任意表
to为授权用户
mysql>flush privileges
mysql>quit
#mysql -u name -p
password
mysql>
如果网络中有windows主机,可以使用navicat连接mysql数据库,可以测试远程连接是否正常。
3.安装PHP
安装php之前确保mysql和nginx安装成功。并且启动服务,检测启动成功,检测方法如前所述。
①安装php所需要的lib库
#yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel -y
#yum install libpng-devel gd-devel libcurl-devel libxslt-devel -y
编译安装libiconv-devel
#cd /home/tools
#wget http://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz
#tar zxf libiconv-1.14.tar.gz
#cd libiconv-1.14
#./configure --prefix=/usr/local/libiconv
#make
#make install
安装libmcrypt库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install libmcrypt-devel
安装mhash库
yum -y install libmcrypt-devel
安装mcrypt
yum -y install mcrypt
②开始安装php,我的版本是php5.6,5.5以上完全适用,5.3之前版本只编译参数不同,其他几乎一样
#cd /home/tools
#wget http://cn2.php.net/get/php-5.6.24.tar.gz/from/this/mirror
#tar zxf php-5.6.24.tar.gz
#cd php-5.6.24
编译参数!!!!!!!!!!!!
#./configure \
--prefix=/application/php5.6.24 \
--with-mysql=/application/mysql \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--with-curlwrappers \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-short-tags \
--enable-zend-mutilbyte \
--enable-static \
--with-xsl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-ftp \
--enable-opcache=no
#ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/
#touch ext/phar/phar.phar
#make
#make install
make的成功标志为:bulid complete!Don't forget to run 'make test'
make install 成功标志:installing PDO headers :......
中间出现错误,查看错误原因,自行baidu解决,正常按照步骤走下来不会出现error,linux的脾气谁也说不准!
③配置PHP 配置文件php.ini
#ln -s /application/php5.6.24 /application/php
#ls php.ini*
两个配置文件,一个开发用,一个生产用
#cp php.ini-development /application/php/lib/php.ini
开发时使用这个,出现错误浏览器会有调试信息提示。
#cd /application/php/etc/
#ls
#cp php-fpm.conf.default php-fpm.conf
④启动php服务
#application/php/sbin/php-fpm
检查启动情况
#ps -ef|grep php-fpm
可以看到相应进程已经启动
#lsof -i :9000
默认使用9000端口提供服务,不要让其他程序占用,启动时提示端口占用,杀死占用程序,在启动服务
⑤配置nginx支持php
#cd /application/nginx/conf
#cp nginx.conf nginx.conf.02
#vi nginx.conf
修改配置文件
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
转第二篇,LNMP(linux+nginx+mysql+php)环境搭建_2
相关文章推荐
- CentOS全自动一键安装PHP,MySQL,phpmyadmin与Nginx
- 编写Nginx启停服务脚本
- 【Nginx】配置Nginx的负载均衡
- centos 编译安装nginx
- nginx的读写分离
- nginx解析php页面
- 控制nginx服务
- Spring Boot WebSocket整合及nginx配置
- nginx 笔记
- linux一键安装nginx脚本
- WordPress + Nginx +PHP+MySQL
- linux搭建nginx
- Nginx安装与使用
- nginx: unrecognized service
- Phusion Passenger
- centos6.8下安装部署LNMP-(nginx1.8.0+php5.6.10+mysql5.6.12)
- nginx 禁止非指定域名访问
- elk实战分析nginx日志文档
- nginx配置负载负载均衡
- elk之nginx