如果您对CentOS6.5搭建LNMP感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于CentOS6.5搭建LNMP的详细内容,我们还将为您解答linux+nginx+mys
如果您对CentOS6.5 搭建 LNMP 感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于CentOS6.5 搭建 LNMP 的详细内容,我们还将为您解答linux + nginx + mysql + php的相关问题,并且为您提供关于CentOS 6.2 yum 安装配置 lnmp 服务器 (Nginx+PHP+MySQL)、CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)、centos 6.8 安装LNMP环境(linux+nginx+mysql+php)、Centos 6.8编译安装LNMP环境(Nginx+MySQL+PHP)教程的有价值信息。
本文目录一览:- CentOS6.5 搭建 LNMP (linux + nginx + mysql + php)(centos7搭建lnmp环境)
- CentOS 6.2 yum 安装配置 lnmp 服务器 (Nginx+PHP+MySQL)
- CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)
- centos 6.8 安装LNMP环境(linux+nginx+mysql+php)
- Centos 6.8编译安装LNMP环境(Nginx+MySQL+PHP)教程
CentOS6.5 搭建 LNMP (linux + nginx + mysql + php)(centos7搭建lnmp环境)
1:查看环境:
1
2
|
[root@10-4-14-168 html]# cat /etc/redhat-release
CentOS release 6.5 (Final)
|
2:关掉防火墙
off
CentOS 6.2 yum 安装配置 lnmp 服务器 (Nginx+PHP+MySQL)
CentOS 6.2 yum 安装配置 lnmp 服务器 (Nginx+PHP+MySQL)
2012 年 02 月 14 日 ⁄ LNMP ⁄ 评论数 44 ⁄ 被围观 23,136 次 +
准备篇:
1、配置防火墙,开启 80 端口、3306 端口
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允许 80 端口通过防火墙)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT(允许 3306 端口通过防火墙)
特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的 22 端口这条规则的下面
添加好之后防火墙规则如下所示:
#########################################################
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
#########################################################
系统运维 www.osyunwei.com 温馨提醒:qihang01 原创内容 © 版权所有,转载请注明出处及原文链接
/etc/init.d/iptables restart #最后重启防火墙使配置生效
2、关闭 SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq 保存,关闭
shutdown -r now #重启系统
3、配置 CentOS 6.2 第三方 yum 源(CentOS 默认的标准源里没有 nginx 软件包)
yum install wget #安装下载工具 wget
wget http://www.atomicorp.com/installers/atomic #下载 atomic yum 源
# 安装
yum check-update #更新 yum 软件包
#############################################################################
安装篇:
一、安装 nginx
yum install nginx #安装 nginx,根据提示,输入 Y 安装即可成功安装
service nginx start #启动
#设为开机启动
/etc/init.d/nginx restart #重启
rm -rf /usr/share/nginx/html/* #删除 ngin 默认测试页
二、安装 MySQL
1、安装 mysql
yum install mysql mysql-server #询问是否要安装,输入 Y 即可自动安装,直到安装完成
/etc/init.d/mysqld start #启动 MySQL
chkconfig mysqld on #设为开机启动
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf #拷贝配置文件(注意:如果 /etc 目录下面默认有一个 my.cnf,直接覆盖即可)
shutdown -r now #重启系统
2、为 root 账户设置密码
mysql_secure_installation
回车,根据提示输入 Y
输入 2 次密码,回车
根据提示一路输入 Y
最后出现:Thanks for using MySQL!
系统运维 www.osyunwei.com 温馨提醒:qihang01 原创内容 © 版权所有,转载请注明出处及原文链接
MySql 密码设置完成,重新启动 MySQL:
/etc/init.d/mysqld stop #停止
/etc/init.d/mysqld start #启动
service mysqld restart #重启
三、安装 PHP
1、安装 PHP
yum install php #根据提示输入 Y 直到安装完成
2、安装 PHP 组件,使 PHP 支持 MySQL、PHP 支持 FastCGI 模式
yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt libmcrypt-devel php-fpm #根据提示输入 Y 回车
/etc/init.d/mysqld restart #重启 MySql
/etc/init.d/nginx restart #重启 nginx
/etc/rc.d/init.d/php-fpm start #启动 php-fpm
chkconfig php-fpm on #设置开机启动
#############################################################################
配置篇
一、配置 nginx 支持 php
cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak #备份原有配置文件
vi /etc/nginx/nginx.conf #编辑
user nginx nginx; #修改 nginx 运行账号为:nginx 组的 nginx 用户
:wq! #保存退出
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.confbak #备份原有配置文件
vi /etc/nginx/conf.d/default.conf #编辑
index index.php index.html index.htm; #增加 index.php
系统运维 www.osyunwei.com 温馨提醒:qihang01 原创内容 © 版权所有,转载请注明出处及原文链接
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#取消 FastCGI server 部分 location 的注释,并要注意 fastcgi_param 行的参数,改为 $document_root$fastcgi_script_name, 或者使用绝对路径
二、配置 php
vi /etc/php.ini #编辑
date.timezone = PRC #在 946 行 把前面的分号去掉,改为 date.timezone = PRC
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#在 386 行 列出 PHP 可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
expose_php = Off #在 432 行 禁止显示 php 版本的信息
magic_quotes_gpc = On #在 745 行 打开 magic_quotes_gpc 来防止 SQL 注入
open_basedir = .:/tmp/ #在 380 行,设置表示允许访问当前目录 (即 PHP 脚本文件所在之目录) 和 /tmp/ 目录,可以防止 php 木马跨站,如果改了之后安装程序有问题,可注销 此行,或者直接写上程序目录路径 /var/www/html/www.osyunwei.com/:/tmp/
:wq! #保存退出
三、配置 php-fpm
系统运维 www.osyunwei.com 温馨提醒:qihang01 原创内容 © 版权所有,转载请注明出处及原文链接
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.confbak #备份原有配置文件
vi /etc/php-fpm.d/www.conf #编辑
user = nginx #修改用户为 nginx
group = nginx #修改组为 nginx
/etc/init.d/mysqld restart #重启 MySql
/etc/init.d/nginx restart #重启 nginx
/etc/rc.d/init.d/php-fpm restart #重启 php-fpm
#############################################################################
测试篇
cd /usr/share/nginx/html/ #进入 nginx 默认网站根目录
vi index.php #新建 index.php 文件
<?php
phpinfo();
?>
:wq! #保存
chown nginx.nginx/usr/share/nginx/html/-R #设置目录所有者
chmod 700 /usr/share/nginx/html/-R #设置目录权限
在客户端浏览器输入服务器 IP 地址,可以看到相关的配置信息!
#############################################################################
备注
nginx 默认站点目录是:/usr/share/nginx/html/
权限设置:chown nginx.nginx/usr/share/nginx/html/-R
MySQL 数据库目录是:/var/lib/mysql
权限设置:chown mysql.mysql -R /var/lib/mysql
此教程目前(2012.2.14)安装 Nginx+PHP+MySQL 版本如下:
CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)
PS:本文属于转载,自己按照上面的步骤走了一遍,亲测成功。
原文地址:http://www.jb51.net/article/37986.htm
准备篇
1、配置防火墙,开启80端口、3306端口
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许3306端口通过防火墙
备注:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,
正确的应该是添加到默认的22端口这条规则的下面
如下所示:
################################ 添加好之后防火墙规则如下所示################################
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
#######################################################################################
/etc/init.d/iptables restart #最后重启防火墙使配置生效
2、关闭SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq #保存退出
shutdown -r Now #重启系统
3、安装第三方yum源
yum install wget #安装下载工具
wget http://www.atomicorp.com/installers/atomic #下载
sh ./atomic #安装
yum check-update #更新yum源
安装篇
一、安装Nginx
yum remove httpd* PHP* #删除系统自带的软件包
yum install Nginx #安装Nginx 根据提示输入y进行安装
chkconfig Nginx on #设置Nginx开机启动
service Nginx start #启动Nginx
二、安装MysqL
1、安装MysqL
yum install MysqL MysqL-server #输入Y即可自动安装,直到安装完成
/etc/init.d/MysqLd start #启动MysqL
chkconfig MysqLd on #设为开机启动
cp /usr/share/MysqL/my-medium.cnf /etc/my.cnf #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
2、为root账户设置密码
MysqL_secure_installation
#回车,根据提示输入Y,输入2次密码,回车,根据提示一路输入Y,最后出现:Thanks for using MysqL!
MysqL密码设置完成,重新启动 MysqL:
/etc/init.d/MysqLd restart #重启
/etc/init.d/MysqLd stop #停止
/etc/init.d/MysqLd start #启动
三、安装PHP5
1、安装PHP5
yum install PHP PHP-fpm #根据提示输入Y直到安装完成
2、安装PHP组件,使 PHP5 支持 MysqL
yum install PHP-MysqL PHP-gd libjpeg* PHP-imap PHP-ldap PHP-odbc PHP-pear PHP-xml PHP-xmlrpc PHP-mbstring PHP-mcrypt PHP-bcmath PHP-mhash libmcrypt
#这里选择以上安装包进行安装,根据提示输入Y回车
chkconfig PHP-fpm on #设置PHP-fpm开机启动
/etc/init.d/PHP-fpm start #启动PHP-fpm
配置篇
一、配置Nginx支持PHP
cp /etc/Nginx/Nginx.conf /etc/Nginx/Nginx.confbak#备份原有配置文件
vi /etc/Nginx/Nginx.conf #编辑
user Nginx Nginx; #修改Nginx运行账号为:Nginx组的Nginx用户
:wq #保存退出
cp /etc/Nginx/conf.d/default.conf /etc/Nginx/conf.d/default.confbak #备份原有配置文件
vi /etc/Nginx/conf.d/default.conf #编辑
index index.PHP index.html index.htm; #增加index.PHP
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.PHP$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.PHP;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径
service Nginx restart #重启Nginx
二、PHP配置
vi /etc/PHP.ini #编辑
date.timezone = PRC #在946行 把前面的分号去掉,改为date.timezone = PRC
disable_functions =
passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,ope
nlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdns
rr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,
posix_getegid,posix_geteuid,posix_getgid,
posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,
posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,
posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,
posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#在386行 列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
expose_PHP = Off #在432行 禁止显示PHP版本的信息
magic_quotes_gpc = On #在745行 打开magic_quotes_gpc来防止sql注入
short_open_tag = ON #在229行支持PHP短标签
open_basedir = .:/tmp/ #在380行 设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止PHP木马跨站,如果改了之后安装程序有问题(例如:织梦内容管理系统),可以注销此行,或者直接写上程序的目录/data/www.osyunwei.com/:/tmp/
:wq! #保存退出
三、配置PHP-fpm
cp /etc/PHP-fpm.d/www.conf /etc/PHP-fpm.d/www.confbak #备份原有配置文件
vi /etc/PHP-fpm.d/www.conf #编辑
user = Nginx #修改用户为Nginx
group = Nginx #修改组为Nginx
:wq #保存退出
测试篇
cd /usr/share/Nginx/html
vi index.PHP #添加以下代码
<?PHP
PHPinfo();
?>
:wq! #保存退出
chown Nginx.Nginx /usr/share/Nginx/html -R #设置权限
service Nginx restart #重启Nginx
service PHP-fpm restart #重启PHP-fpm
在客户端浏览器输入服务器IP地址,可以看到相关的配置信息!
说明lnmp配置成功!
至此,CnetoS 6.4安装配置LNMP(Nginx+PHP+MysqL)教程完成。
centos 6.8 安装LNMP环境(linux+nginx+mysql+php)
Nginx 特性
Nginx 性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。
1、相比 Apache,用 Nginx 作为 Web 服务器:使用资源更少,支持更多并发连接,效率更高。
2、作为负载均衡服务器:Nginx 既可在内部直接支持 Rails 和 PHP,也可支持作为 HTTP 代理服务器对外进行服务。Nginx 用 C 编写而成, 不论是系统资源开销还是 cpu 使用效率都比 Perlbal 要好的多。
3、作为邮件代理服务器:Nginx 同时也是一款非常优秀的邮件代理服务器(最早开发这个产品的目的之一,是作为邮件代理服务器)。
4、反向代理可以根据url将请求转向于不同用途的集群,比如图片请求,转向图片服务器集群;视频请求,转身视频服务器集群。
Nginx是一款轻量级的web服务器/反向代理服务器/电子邮件代理服务器,安装非常简单,配置文件也很简洁(还支持 perl 语法)。Nginx 支持平滑加载新配置,还能够在不间断服务的情况下进行软件版本升级。
Apache 特性
1、Apache 是 LAMP 架构最核心的 Web Server,开源、稳定、模块丰富是 Apache 的优势。但 Apache 的缺点是有些臃肿,内存和 cpu 开销大,性能上有损耗,不如一些轻量级的 Web 服务器(譬如:Nginx、Tengine等)高效,轻量级的 Web 服务器对于静态文件的响应能力来说远高于 Apache 服务器。
2、Apache 做为 Web Server 是负载 PHP 的最佳选择,如果流量很大的话,可以采用 Nginx 来负载非 PHP 的 Web 请求。Nginx 是一个高性能的 HTTP 和反向代理服务器,Nginx 以其稳定、丰富功能集、示例配置文件和低系统资源的消耗而闻名。Nginx 现能支持 PHP 和 FastCGI,也支持负载均衡和容错,可和 Apache 配合使用,是轻量级的 HTTP 服务器的首选。
3、Web 服务器缓存也有多种方案,Apache 提供了自己的缓存模块,也可以使用外加的 Squid 模块进行缓存,这两种方式均可有效提高 Apache 的访问响应能力。Squid Cache 是一个 Web 缓存服务器,支持高效缓存,可作为网页服务器的前置 cache 服务器缓存相关请求以提高 Web 服务器速度。把 Squid 放在 Apache 的前端来缓存 Web 服务器生成动态内容,而 Web 应用程序只需要适当地设置页面实效时间即可。如访问量巨大,则可考虑使用 memcache 作为分布式缓存。
4、PHP 的加速可使用 eAccelerator 加速器,eAccelerator 是一个自由开放源码的 PHP 加速器。它会优化动态内容缓存,提高 PHP 脚本缓存性能,使 PHP 脚本在编译状态下,对服务器的开销几乎完全消除。它还可对脚本起优化作用,以加快其执行效率。 使 PHP 程序代码执效率可提高 1-10 倍。
##以上资料来源:https://www.zhihu.com/question/19697826
Nginx优点:
轻量级服务器,相比较apache占用的资源更加少。
高并发。
配置文件的语法等简单易懂
社区活跃。
支持epoll模型。使得Nginx可以支持高并发。
利用Nginx可以对ip限速,可以限制连接数
环境:
centos 6.8 2.6.32-642.15.1.el6.x86_64
软件:
libiconv-1.14.tar.gz
libmcrypt-2.5.8.tar.gz
mcrypt-2.6.8.tar.gz
mhash-0.9.9.9.tar.gz
mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz(二进制版)
PHP-5.6.30.tar.gz
Nginx-1.12.0.tar.gz
提示:在进入正题之前一定要先去了解下Nginx的工作原理和常用场景。
不要死记,多操作,多理解,自然就懂了。
看别人操作,不如自己操作。
要能清晰的了解同类产品的区别。
大纲:
安装Nginx
启动Nginx
配置虚拟主机
安装MysqL二进制版
安装PHP
测试lnmp环境
Nginx
1、安装Nginx
wgethttp://Nginx.org/download/Nginx-1.12.0.tar.gz tarzxvfNginx-1.12.0.tar.gz cdNginx-1.12.0/ yuminstallgccgcc-c++zilb.x86_64zlib-devel.x86_64pcre-devel.x86_64pcre.x86_64 openssl.x86_64openssl-devel.x86_64-y useradd-M-s/sbin/nologinNginx ./configure--help ./configure--prefix=/application/Nginx1.12.0--user=Nginx--group=Nginx--with-pcre --with-http_ssl_module--with-http_stub_status_module echo$? make echo$? makeinstall echo$? ln-s/application/Nginx1.12.0//application/Nginx cd/application/Nginx
Nginx目录结构 |
|
conf | 配置文件 |
html | 默认站点 |
logs | 日志文件 |
sbin | 命令 |
总结: 1 选择软件一定不能选择最新的,否则出问题不容易解决,因为第一个吃螃蟹。 |
2、启动Nginx
/application/Nginx/sbin/Nginx-t /application/Nginx/sbin/Nginx lsof-i:80 curllocalhost
总结:
|
3、配置虚拟主机
如果熟悉了Apache的虚拟主机那么Nginx的虚拟主机也很容易理解,而且配置还比Apache简单很多。
虚拟主机:
基于域名的虚拟主机
基于IP的虚拟主机
基于端口的虚拟主机
mkdir/application/Nginx/conf/extra-p ##把我们的虚拟主机文件放在这个扩展目录中,可以在管理网站的时候更加方便 vim/application/Nginx/conf/Nginx.conf ##将主配置文件修改为以下内容 worker_processes1; events{ worker_connections1024; } http{ includemime.types; default_typeapplication/octet-stream; sendfileon; keepalive_timeout65; includeextra/blog.conf; includeextra/easy.conf; includeextra/bad.conf; } vim/application/Nginx/conf/extra/blog.conf ##将虚拟主机blog配置文件配置为以下内容,不存在则创建 server{ listen80; server_namewww.blog.vperson.org.cn; location/{ roothtml/blog; indexindex.htmlindex.htm; } } vim/application/Nginx/conf/extra/easy.conf ##将虚拟主机easy配置为以下内容,不存在则创建 server{ listen80; server_namewww.easy.vperson.org.cn; location/{ roothtml/easy; indexindex.htmlindex.htm; } } vim/application/Nginx/conf/extra/bad.conf ##将虚拟主机bad配置文件修改为以下内容,不存在则创建 server{ listen80; server_namewww.bad.vperson.org.cn; location/{ roothtml/bad; indexindex.htmlindex.htm; } } cd/application/Nginx/html/ fornameinblogbadeasy;domkdir$name;echo"$name.vperson.org.cn"> $name/index.html; done ##利用for循环创建目录,并向index.html中写入内容 tree./ bad │└──index.html ├──blog │└──index.html ├──easy │└──index.html vim/etc/hosts 127.0.0.1localhostwww.blog.vperson.org.cnwww.easy.vperson.org.cn##修改本地hosts文件,为了配合我们的基于域名的虚拟主机 ping-c1 ping-c1 ping-c1www.bad.vperson.org.cn /application/Nginx/sbin/Nginx-sreload ##重启Nginx服务器 curl blog.vperson.org.cn curl bad.vperson.org.cn curl easy.vperson.org.cn
提示:使用curl访问域名时返回如上信息即基于域名的虚拟主机搭建成功。
扩展:
* 域名重定向
为什么需要域名重定向,第一是为了防止恶意绑定,最简单的道理就是,域名是别人买的,别人想把域名指向公网中的任意一台主机我们也没有办法。但是用了域名重定向后,可以在使用恶意域名访问我们的服务器后,会在地址栏重定向为我们指定的域名,并访问指定的站点。(理解一个原理,在一个未知域名访问我们的主机时其实是以IP的形式访问,也就是说我们重定向的其实是IP地址)
还有就是多域名指向同意服务器,提高访问量。
------------------------------------------------------------------ vim/application/Nginx/conf/extra/rewrite.conf ##编译rewirte.conf文件不存在则创建,内容如下 server{ listen80; server_namewww.rewrite.vperson.org; rewrite^/(.*)http://www.easy.vperson.org.cn/$1permanent; #^/表示 # #永久有效 } ----OK------------------------------------------------------------ ------------------------------------------------------------------ vim/application/Nginx/conf/Nginx.conf ##修改Nginx的主配置文件,注意include的顺序这个很重要否则域名重定向就没用了 worker_processes1; events{ worker_connections1024; } http{ includemime.types; default_typeapplication/octet-stream; sendfileon; keepalive_timeout65; includeextra/rewrite.conf; includeextra/blog.conf; includeextra/easy.conf; includeextra/bad.conf; } ----OK------------------------------------------------------------ /application/Nginx/sbin/Nginx-t /application/Nginx/sbin/Nginx-sreload vim/etc/hosts 127.0.0.1localhostwww.blog.vperson.org.cnwww.easy.vperson.org.cn www.rewrite.vperson.org ping-c1 curl-Lwww.rewrite.vperson.org curl-Iwww.rewrite.vperson.org HTTP/1.1301MovedPermanently Server:Nginx/1.12.0 Date:Sun,16Apr201714:19:58GMT Content-Type:text/html Content-Length:185 Connection:keep-alive Location:http://www.easy.vperson.org.cn/
隐藏Nginx版本号:
vim/application/Nginx/conf/Nginx.conf ##修改为以下内容 worker_processes1; events{ worker_connections1024; } http{ includemime.types; default_typeapplication/octet-stream; sendfileon; keepalive_timeout65; server{ listen8080; server_namewww.vperson.win; rewrite^/(.*)http://www.blog.vperson.org.cn/$1permanent; } includeextra/easy.conf; includeextra/bad.conf; includeextra/blog.conf; server_tokensoff; }
apache隐藏版本号的方法:
----------------------------
cat/application/apache/conf/extra/httpd-default.conf ............. ServerTokensprod ServerSignatureOff .............
-----------------------
Nginx日志管理
使用mv工具和crontab工具
具体方法如下:
---------------------------------------------------------------------------- vimNginx.conf worker_processes1; events{ worker_connections1024; } http{ includemime.types; default_typeapplication/octet-stream; sendfileon; keepalive_timeout65; log_formatmain'$remote_addr-$remote_user[$time_local]"$request"' '$status$body_bytes_sent"$http_referer"' '"$http_user_agent""$http_x_forwarded_for"'; includeextra/rewrite.conf; includeextra/bad.conf; includeextra/blog.conf; includeextra/easy.conf; server_tokensoff; } vimextra/blog.conf server{ listen80; server_namewww.blog.vperson.org.cn; access_loglogs/blog.access.logmain; location/{ roothtml/blog; indexindex.htmlindex.htm; } } ##其他的配置文件也一样在server标签里添加日志信息 ----OK------------------------------------------------------------ #sed-i'/server_namewww.bad.vperson.org.cn;/a\\taccess_loglogs\/bad.access.log main;'extra/bad.conf ../sbin/Nginx-t ../sbin/Nginx-sreload ll../logs/ total220 -rw-r--r--1rootroot110155Apr1715:42access.log -rw-r--r--1rootroot0Apr1715:42bad.access.log -rw-r--r--1rootroot0Apr1715:42blog.access.log -rw-r--r--1rootroot0Apr1715:42easy.access.log -rw-r--r--1rootroot98802Apr1715:43error.log -rw-r--r--1rootroot6Apr1622:29Nginx.pid -rw-r--r--1rootroot0Apr1715:42rewrite.access.log ##可见日志文件已经生成 --------------------------------------------------------------------------------- vim/application/Nginx/logs/backlog.sh ##写一个自动备份的脚本 #!/bin/sh fornameinrewritebadblogeasy; do /bin/mv/application/Nginx/logs/${name}.access.log/applog/Nginx/access/$(date+%F)_${name}.log if[$?-eq0] then echo"$(date+%F)${name}">>/applog/Nginx/access/successfully.txt else echo"$(date+%F)${name}">>/applog/Nginx/access/error.txt fi done /bin/find/applog/Nginx/access/-mtime+7-execrm-rf{}\; ---脚本完成------OK------------------------------------------------------------ chmod+x/application/Nginx/logs/backlog.sh crontab-e 301***/application/Nginx/logs/backlog.sh ##晚上访问量少,适合做备份等工作 mkdir-p/applog/Nginx/access/
总结:
|
++++++++++++++++++++++Nginx服务安装完成++++++++++++++++++++++++
MysqL
4、安装二进制MysqL
MysqL分类:
社区版
商业版
集群
wgethttp://dev.MysqL.com/get/Downloads/MysqL-5.5/MysqL-5.5.32-linux2.6-x86_64.tar.gz tarzxvfMysqL-5.5.32-linux2.6-x86_64.tar.gz cp-avrMysqL-5.5.32-linux2.6-x86_64//application/ cd/application/ mvMysqL-5.5.32-linux2.6-x86_64/MysqL-5.5.32/ ln-sMysqL-5.5.32/MysqL useradd-M-s/sbin/nologinMysqL cdMysqL mkdir/application/MysqL/data-p chown-RMysqL:MysqL/application/MysqL-5.5.32/ ----------------------------------------------------------------- ./scripts/MysqL_install_db--basedir=/application/MysqL/ --datadir=/application/MysqL/data/--user=MysqL ##初始化数据库 MysqL_install_db根据版本的不同可能存放的路径也不一样 --basedir是MysqL的安装路缙 --datadir是数据文件存放路径 --user是用户名 成功的标准是echo$?没有错误+两个OK没有error TostartMysqLdatboottimeyouhavetocopy support-files/MysqL.servertotherightplaceforyoursystem ##想要开机自动启动,就把MysqL.server放到正确的位置即/etc/init.d/MysqLd /application/MysqL//bin/MysqLadmin-urootpassword'new-password' /application/MysqL//bin/MysqLadmin-uroot-hvpersonpassword'new-password' Alternativelyyoucanrun: /application/MysqL//bin/MysqL_secure_installation ##设置密码的方法 YoucanstarttheMysqLdaemonwith: cd/application/MysqL/;/application/MysqL//bin/MysqLd_safe& ##运行数据库 YoucantesttheMysqLdaemonwithMysqL-test-run.pl cd/application/MysqL//MysqL-test;perlMysqL-test-run.pl ##测试数据库 提示:/etc/init.d/MysqLd实质是复制了MysqL.server文件,所以一定不要和cd/application/MysqL/ ;/application/MysqL//bin/MysqLd_safe&方法一起用否则会出错 --------------------------------------------------------------- \cpsupport-files/my-medium.cnf/etc/my.cnf \cpsupport-files/MysqL.server/etc/init.d/MysqLd -------------------------------------- vim/etc/init.d/MysqLd .................. basedir=/application/MysqL/ datadir=/application/MysqL/data ................... 或者 #sed-i'46s/\(basedir=\)/\1\/application\/MysqL/p'/etc/init.d/MysqLd ##修改46行为basedir=/application/MysqL,只限定当前环境,其他环境可能有变化 #sed-i'47s/\(datadir=\)/\1\/application\/MysqL\/data/p'/etc/init.d/MysqLd ##修改datadir为/application/mysq/data ----OK--------------------------------- chmod+x/etc/init.d/MysqLd /etc/init.d/MysqLdstart echo"exportPATH=/application/MysqL/bin:$PATH">>/etc/profile source/etc/profile ---------------------------------------------------- MysqL_secure_installation ##以下内容看自己的需求 MysqL-uroot-p MysqL>showdatabases; MysqL>useMysqL MysqL>showtables; MysqL>selectUser,Hostfromuser; MysqL>DELETEFROMuserWHEREUser='root'andHost='::1'; ##目前是不会用的到的所以删除,如果有需求就不用删除 MysqL>quit --OK--------------------------------------------------
总结: a)针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码; |
PHP
需要下载以下的依赖包,并且编译:
libiconv(libiconv-1.14.tar.gz)
libmcrypt-2.5.8.tar.gz,加密库
mcrypt-2.6.8.tar.gz
mhash-0.9.9.9.tar.gz
5、安装PHP
wget tarzxvfPHP-5.6.30.tar.gz cdPHP-5.6.30/ yuminstalllibxml2-devel.x86_64libxml2.x86_64openssl-devel.x86_64 libcurl-devel.x86_64libjpeg-turbo.x86_64libjpeg-turbo-devel.x86_64 png*libpng-devel.x86_64freetype.x86_64freetype-devel.x86_64 libxslt-devel.x86_64libxslt.x86_64zliblibxmllibjpegfreetypelibpnggd curllibiconvzlib-devellibxml2-devellibjpeg-develfreetype-devel libpng-develgd-develcurl-devel-y 编译安装libiconv1.14: ============================================== tarzxvflibiconv-1.14.tar.gz cdlibiconv-1.14/ ./configure--prefix=/usr/local/libiconv make makeinstall =============================================== 编译安装mhash-0.9.9.9: ================================================= tarzxvfmhash-0.9.9.9.tar.gz cdmhash-0.9.9.9/ ./configure make&&makeinstall ================================================ 编译安装libmcrypt ================================================== tarzxvflibmcrypt-2.5.8.tar.gz cdlibmcrypt-2.5.8/ ./configure make&&makeinstall cp/usr/local/lib/*/usr/local/lib64/-av ##只正对64位操作系统,32为操作系统直接往下走 ln-s/usr/local/lib64/libmcrypt.la/usr/lib64/libmcrypt.la ln-s/usr/local/lib64/libmcrypt.so/usr/lib64/libmcrypt.so ln-s/usr/local/lib64/libmcrypt.so.4/usr/lib64/libmcrypt.so.4 ln-s/usr/local/lib64/libmcrypt.so.4.4.8/usr/lib64/libmcrypt.so.4.4.8 ln-s/usr/local/lib64/libmhash.a/usr/lib64/libmhash.a ln-s/usr/local/lib64/libmhash.la/usr/lib64/libmhash.la ln-s/usr/local/lib64/libmhash.so/usr/lib64/libmhash.so ln-s/usr/local/lib64/libmhash.so.2/usr/lib64/libmhash.so.2 ln-s/usr/local/lib64/libmhash.so.2.0.1/usr/lib64/libmhash.so.2.0.1 ln-s/usr/local/bin/libmcrypt-config/usr/bin/libmcrypt-config ##提示我搭好的环境中我并没有在/usr/local/lib64/下找到文件,文件都在/usr/local/lib, 可以把/usr/local/lib/下的文件复制到/usr/local/lib64/下 ================================================= yuminstalllibxslt*-y ##安装libxslt* 编译安装mcrypt-2.6.8: ================================================ tarzxvfmcrypt-2.6.8.tar.gz cdmcrypt-2.6.8/ ./configureLD_LIBRAPY_PATH=/usr/local/lib ##原因未知,这个我是百度搜出来的 make&&makeinstall ================================================ ================================================= vim1.txt ./configure\ --prefix=/application/PHP5.6.30\ --with-MysqL=/application/MysqL\ --enable-MysqLnd \ --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-safe-mode\ --enable-bcmath\ --enable-shmop\ --enable-sysvsem\ --enable-inline-optimization\ --with-curl\ --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-zip\ --enable-soap\ --enable-short-tags\ --enable-zend-multibyte\ --enable-static\ --with-xsl\ --with-fpm-user=Nginx\ --with-fpm-group=Nginx\ --enable-ftp \ --enable-embedded-MysqLi \ --with-MysqLi \ --with-pdo-MysqL=/application/MysqL cat1.txt|bash echo$? make echo$? makeinstall echo$? ln-s/application/PHP5.6.30//application/PHP cpPHP.ini-production/application/PHP/lib/PHP.ini ##提醒:如果是做开发的话就把PHP.ini-development复制过去 由于Nginx调用PHP是通过一个fcgi的程序,所以,这个程序也是有配置文件的。 cd/application/PHP/etc/ cpPHP-fpm.conf.defaultPHP-fpm.conf egrep-v"^$|;"PHP-fpm.conf ------------------------------------------------------------------------ [global] pid=/app/logs/PHP-fpm.pid error_log=/app/logs/PHP-fpm.log log_level=error rlimit_files=32768 events.mechanism=epoll [www] user=Nginx group=Nginx listen=127.0.0.1:9000 listen.owner=Nginx listen.group=Nginx pm=dynamic pm.max_children=1024 pm.start_servers=16 pm.min_spare_servers=5 pm.max_spare_servers=20 pm.max_requests=2048 slowlog=/app/logs/$pool.log.slow request_slowlog_timeout=10 -------------------------------------------------------------------------- ../sbin/PHP-fpm-t +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 错误:ERROR:Unabletocreateoropenslowlog(/applog/logs/www.log.slow):Nosuchfileordirectory(2) 解决:mkdir/applog/logs/-p +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ../sbin/PHP-fpm lsof-i:9000 ================================================
我编译PHP遇到的错误:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
错误:configure: error: Don't kNow how to define struct flock on this system,set --enable-opcache=no
解决:
ln -s /application/MysqL/lib/libMysqLclient.so /usr/lib64/
ln -s /application/MysqL/lib/libMysqLclient.so.18 /usr/lib64/
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
问题:checking whether to enable embeddedMysqLi support... yes
checking for MysqL_set_server_optionin -lMysqLclient... no
configure: error: wrong MysqL libraryversion or lib not found. Check config.log for more information.
解决:--with-MysqLi后面不加路径
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
问题:Don't kNow how to define struct flockon this system,set --enable-opcache=no
解决:
以下红色路径看具体MysqL安装路径而定
32位系统:
ln -s /usr/local/MysqL/lib/libMysqLclient.so /usr/lib/
ln -s /usr/local/MysqL/lib/libMysqLclient.so.18/usr/lib/libMysqLclient.so.18
64位系统:
ln -s /usr/local/MysqL/lib/libMysqLclient.so /usr/lib64/libMysqLclient.so
ln -s /usr/local/MysqL/lib/libMysqLclient.so.18 /usr/lib64/libMysqLclient.so.18
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
问题:configure: error: Please reinstallreadline - I cannot find readline.h
解决:yum install readline-devel.x86_64 -y
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
问题:make: *** [sapi/cli/PHP] Error 1
解决:
网上统一的解决方式: makeZEND_EXTRA_LIBS='-liconv'
ln -s /usr/local/lib/libiconv.so.2/usr/lib64/
我自己的解决方式:重新编译安装libiconv(注意编译的的参数--with-iconv-dir的路径)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
=================测试LNMP环境==========================
cd /application/Nginx/
--------------------------------------------------
vim html/blog/index.PHP
<?PHP
PHPinfo();
?>
--------------------------------------------------
vim conf/extra/blog.conf
server {
listen 80;
server_name www.blog.vperson.org.cn;
access_log logs/blog.access.log main;
location / {
root html/blog;
index index.PHP index.html index.htm;
}
location ~ \.PHP$ {
root html/blog;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.PHP;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
include fastcgi.conf;
}
}
-----------------------------------------------------------------------------
./sbin/Nginx -t
./sbin/Nginx -s reload
curl www.blog.vperson.org.cn
错误集:
|
隐藏PHP版本:
vim /application/PHP/lib/PHP.ini
expose_PHP=On
搭建一个自己的开源网站:
opensns、PHPcms、wiki等。
步骤:
下载开源软件包
#如http://kaiyuan.hudong.com/
创建数据库
#create database wiki;
创建数据库中的用户用于管理这个网站的数据
#grant all on wiki.* towiki@’localhost’ identified by ‘wiki’;
#flush privileges;
#quit
解压开源网站到指定的站点目录
#修改权限chown -RNginx:Nginx 目录
用浏览器访问
安装站点
总结: LNMP搭建对于新手来说是比较困难但是要细心,前后要有呼应,理解。 遇到困难先看错误,别急着百度,因为搜出来的大部分都是复制粘贴的。 记录下来每次的错误方便下次解决。 遇到困难,做了好久的,先放松放松,去散步什么的回来说不定就会了。 二进制的MysqL不推荐新手完,因为他只是预设了一些参数。 |
##以上可能有错误,但是还请原谅因为我也是新手,刚刚开始学习linux,请多多指教。
Centos 6.8编译安装LNMP环境(Nginx+MySQL+PHP)教程
前言
对于新手的一点建议:
- 最好熟悉一下linux 的基本命令,vim的常用命令
- 千万不要无脑复制,先看一下命令,特别是路径要注意
- 学会排查错误
本篇安装的软件版本为:
- Linux:Centos6.8
- Nginx:1.10.3
- MysqL:5.7.17
- PHP:7.0.16
最近研究了Linux系统下的PHP环境搭建,个人感觉最好最好不要用yum默认的程序包安装,因为版本都比较低,下载最新的稳定版自行安装比较好。现在网上教程很多,之所以还记这篇,原因有一点,当你重复网上的教程自行安装时,90%还是会出现各种各样的问题,因为你可能linux的系统版本不同,你想装的软件版本不同,安装的方法不同,你下错了安装包的版本,还有其它乱七八糟的。举个例,比如你看着5.6的MysqL安装教程,装5.7的,你感觉没问题,但是事实就是,5.7的不一样了!而且网上还没有新的这方面内容,不好找,这就需要你去摸索了,亲身经历啊。这里面,Niginx感觉最好配,MysqL最坑。
一 准备工作
1. 关闭SELINUX
修改配置文件,重启服务后永久生效。
# sed -i ‘s/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
命令行设置立即生效。
# setenforce 0
2. 如果是阿里云ECS用户,安全组设置中开启80端口方便调试。
二 安装Nginx
1. 下载源码包
上Nginx官网,复制最新稳定版的下载地址过来,然后用wget下载(接下来需要下载安装包的都可以用wget):
# cd /usr/local/src # wget http://Nginx.org/download/Nginx-1.10.3.tar.gz
下载完成的状态基本都是以下这样的:
2. 进行解压编译
# tar xvf Nginx-1.10.3.tar.gz # yum groupinstall “Development tools” # yum -y install gcc wget gcc-c++ automake autoconf libtool libxml2-devel libxslt-devel perl-devel perl-ExtUtils-Embed pcre-devel openssl-devel
执行完成。
进入解压后的Nginx-1.10.3文件夹:
cd /usr/local/src/Nginx-1.10.3
执行以下语句:
./configure \ --prefix=/usr/local/Nginx \ --sbin-path=/usr/sbin/Nginx \ --conf-path=/etc/Nginx/Nginx.conf \ --error-log-path=/var/log/Nginx/error.log \ --http-log-path=/var/log/Nginx/access.log \ --pid-path=/var/run/Nginx.pid \ --lock-path=/var/run/Nginx.lock \ --http-client-body-temp-path=/var/tmp/Nginx/client \ --http-proxy-temp-path=/var/tmp/Nginx/proxy \ --http-fastcgi-temp-path=/var/tmp/Nginx/fcgi \ --http-uwsgi-temp-path=/var/tmp/Nginx/uwsgi \ --http-scgi-temp-path=/var/tmp/Nginx/scgi \ --user=Nginx \ --group=Nginx \ --with-pcre \ --with-http_v2_module \ --with-http_ssl_module \ --with-http_realip_module \ --with-http_addition_module \ --with-http_sub_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_mp4_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_random_index_module \ --with-http_secure_link_module \ --with-http_stub_status_module \ --with-http_auth_request_module \ --with-mail \ --with-mail_ssl_module \ --with-file-aio \ --with-ipv6 \ --with-http_v2_module \ --with-threads \ --with-stream \ --with-stream_ssl_module
完成后执行编译:
# make && make install # mkdir -pv /var/tmp/Nginx/client
3. 添加SysV启动脚本。
用vim编辑脚本:
# vim /etc/init.d/Nginx
写入以下内容:
#!/bin/sh # # Nginx - this script starts and stops the Nginx daemon # # chkconfig: - 85 15 # description: Nginx is an HTTP(S) server,HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: Nginx # config: /etc/Nginx/Nginx.conf # config: /etc/sysconfig/Nginx # pidfile: /var/run/Nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] &amp;amp;&amp;amp; exit 0 Nginx="/usr/sbin/Nginx" prog=$(basename $Nginx) Nginx_CONF_FILE="/etc/Nginx/Nginx.conf" [ -f /etc/sysconfig/Nginx ] &amp;amp;&amp;amp; . /etc/sysconfig/Nginx lockfile=/var/lock/subsys/Nginx start() { [ -x $Nginx ] || exit 5 [ -f $Nginx_CONF_FILE ] || exit 6 echo -n $"Starting $prog: " daemon $Nginx -c $Nginx_CONF_FILE retval=$? echo [ $retval -eq 0 ] &amp;amp;&amp;amp; touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] &amp;amp;&amp;amp; rm -f $lockfile return $retval killall -9 Nginx } restart() { configtest || return $? stop sleep 1 start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $Nginx -HUP RETVAL=$? echo } force_reload() { restart } configtest() { $Nginx -t -c $Nginx_CONF_FILE } rh_status() { status $prog } rh_status_q() { rh_status &amp;gt;/dev/null 2&amp;gt;&amp;amp;1 } case "$1" in start) rh_status_q &amp;amp;&amp;amp; exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac
保存退出(按:wq!);可能你得稍微查一下vim的一些命令,不然操作时可能会出现一点小问题。
赋予脚本执行权限:
# chmod +x /etc/init.d/Nginx
添加至服务管理列表,设置开机自启:
# chkconfig Cadd Nginx # chkconfig Nginx on
4. 启动服务。
# service Nginx start
出现这玩意说明成功了!
注:如果报错 [emerg]: getpwnam(“Nginx”) Failed ;
解决方法:
# useradd -s /sbin/nologin -M Nginx # id Nginx
三 安装MysqL
1. 版本选择
在安装之前必须明白一件事情,MysqL有很多种安装方式,每种不一样,不要弄混了。
比如源码编译安装(MysqL-5.7.17.tar.gz),二进制安装(MysqL-5.7.17-linux-glibc2.5-i686.tar),nmp安装(最简单的)。这里我们用源码自己编译安装。
2. 准备编译环境
# yum groupinstall “Server Platform Development” “Development tools” -y # yum install cmake -y
cmake在现在的版本是必须要安装的,你可以下载camke之后编译,也可以直接yum安装。接下来的编译过程如果报错缺少什么就补什么。
3. 准备MysqL数据库存放目录
# mkdir /mnt/data # groupadd -r MysqL # useradd -r -g MysqL -s /sbin/nologin MysqL # id MysqL
4. 更改数据目录权限。
# chown -R MysqL:MysqL /mnt/data
5. 下载并解压编译官网下载的稳定版的源码包。
在下载的时候注意一下版本,下载对应的版本。我们源码编译,要下载长这样的安装包:MysqL-5.7.17.tar.gz,同时在安装的时候我们需要boost库,5.7需要1.59版本的库;你可以下载boost库然后编译boost库,或者像我一样,下载带有boost库的MysqL版本。
开始解压编译:
# tar xvf MysqL-boost-5.7.17.tar.gz -C /usr/local/src # cd /usr/local/src/MysqL-5.7.17 # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/MysqL \ -DMysqL_DATADIR=/mnt/data \ -DSYSconfdIR=/etc \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ -DWITH_LIBWRAP=0 \ -DMysqL_TCP_PORT=3306 \ -DMysqL_UNIX_ADDR=/tmp/MysqL.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 \ -DWITH_BOOST=/usr/local/MysqL/boost/boost_1_59_0 \ # make && make install
6. 修改安装目录的权限属组
# chown -R MysqL:MysqL /usr/local/MysqL/
7. 初始化数据库。
# /usr/local/MysqL/bin/MysqLd Cinitialize Cuser=MysqL Cbasedir=/usr/local/MysqL Cdatadir=/mnt/data/
需要注意这里是MysqL5.7的初始化命令,而5.7以下的都是用:
# /usr/local/MysqL/scripts/MysqL_install_db Cuser=MysqL Cdatadir=/mnt/data/
在初始化成功之后,5.7的initial命令会产生一个随机的root登录密码,你要用这个密码登录,然后修改(必须修改生成的随机密码不然无法后续操作)。在最后有一个类似这样的密码:
8. 复制配置文件
# cp support-files/my-default.cnf /etc/my.cnf
这里又有一点要注意:MysqL5.7配置文件需要修改my.cnf关键配置, MysqL5.7之前默认配置文件中是有配置项的,不用手动修改。以下为配置,根据实际情况修改:
</div> <div>[MysqLd]</div> <div>basedir = /usr/local/MysqL</div> <div>datadir = /mnt/data</div> <div>port = 3306</div> <div>socket = /Ultrapower/test/MysqL/tmp/MysqL.sock</div> <div></div> <div>sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES</div> <div>[client]</div> <div>socket = /Ultrapower/test/MysqL/tmp/MysqL.sock</div> <div>
如果添加[client]下 的内容,注意sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES要放在[MysqLd]下。
如果报错tmp目录不错在,到对应的地方去创建目录,然后创建后要赋予MysqL权限,chown -R MysqL:MysqL tmp。
9. 设置开机启动
# cp /usr/local/MysqL/support-files/MysqL.server /etc/init.d/MysqLd # chmod +x /etc/init.d/MysqL
注册为开机启动服务:
# chkconfig MysqLd on # chkconfig Cadd MysqLd
查看是否设置成功:
# chkconfig Clist MysqL
10. 设置PATH环境变量。
# echo “export PATH=$PATH:/usr/local/MysqL/bin” > /etc/profile.d/MysqL.sh # source /etc/profile.d/MysqL.sh
11. 启动服务
# service MysqLd start
这样基本上,这个MysqL就装好了。
12. 登录MysqL并修改密码
MysqL -uroot -p生成的密码
执行修改密码:
alter user ‘root'@'localhost' identified by ‘newpassword';
四 安装PHP-fpm
1. 安装依赖包:
yum install libmcrypt libmcrypt-devel mhash mhash-devel libxml2 libxml2-devel bzip2 bzip2-devel
这里还漏了几个,如果报错了提示缺少了什么就yum补上。
2. 到官网下载源码包后,开始编译安装:
# tar xvf PHP-7.0.16.tar.bz2 -C /usr/local/src # cd /usr/local/src/PHP-7.0.16 执行下面的配置文件: # ./configure --prefix=/usr/local/PHP \ --with-config-file-scan-dir=/etc/PHP.d \ --with-config-file-path=/etc \ --with-MysqL=/usr/local/MysqL \ --with-MysqLi=/usr/local/MysqL/bin/MysqL_config \ --enable-fpm \ --enable-opcache \ --disable-fileinfo \ --with-jpeg-dir \ --with-iconv-dir=/usr/local \ --with-freetype-dir \ --with-png-dir \ --with-zlib \ --with-libxml-dir=/usr \ --enable-xml \ --enable-bcmath \ --enable-shmop \ --enable-exif \ --with-curl \ --enable-sysvsem \ --enable-inline-optimization \ --enable-mbregex \ --enable-inline-optimization \ --enable-mbstring \ --with-mcrypt \ --with-gd \ --enable-gd-native-ttf \ --with-openssl \ --with-mhash \ --enable-pcntl \ --enable-sockets \ --with-xmlrpc \ --enable-ftp \ --with-gettext \ --enable-zip \ --enable-soap \ --with-bz2
执行以上的配置,如果出现下面这样的license,才是正确的,才可以开始编译,如果出问题,就解决,一般是少了什么库。
执行编译:
# make && make install
3. 添加PHP和PHP-fpm配置文件。
# cp /usr/local/src/PHP-7.0.16/PHP.ini-production /etc/PHP.ini # cd /usr/local/PHP/etc/ # cp PHP-fpm.conf.default PHP-fpm.conf # sed -i ‘s@;pid = run/PHP-fpm.pid@pid = /usr/local/PHP/var/run/PHP-fpm.pid@' PHP-fpm.conf
4. 添加PHP-fpm启动脚本。
# cp /usr/local/src/PHP-7.0.16/sapi/fpm/init.d.PHP-fpm /etc/init.d/PHP-fpm # chmod +x /etc/init.d/PHP-fpm
5. 添加PHP-fpm至服务列表并设置开机自启。
# chkconfig Cadd PHP-fpm # chkconfig Clist PHP-fpm # chkconfig PHP-fpm on
6. 启动服务。
# service PHP-fpm start
注:启动时如出现错误:
WARNING: nothing matches the include pattern ‘/usr/local/etc/PHP-fpm.d/*.conf' from /usr/local/etc/PHP-fpm.conf at line 125. ERROR:. No pool defined at least one pool section must be specified in config file ERROR: Failed to post process the configuration ERROR: FPM initialization Failed
解决:到指定目录执行cp www.conf.default www.conf
7. 添加Nginx对fastcgi的支持,
首先备份默认的配置文件。
# cp /etc/Nginx/Nginx.conf /etc/Nginx/Nginx.confbak # cp /etc/Nginx/Nginx.conf.default /etc/Nginx/Nginx.conf
编辑/etc/Nginx/Nginx.conf,在所支持的主页面格式中添加PHP格式的主页,类似如下:
</div> <div>location / {</div> <div>root /usr/local/Nginx/html;</div> <div>index index.PHP index.html index.htm;</div> <div>}</div> <div>
取消以下内容前面的注释:
</div> <div>location ~ \.PHP$ {</div> <div>root /usr/local/Nginx/html;</div> <div>fastcgi_pass 127.0.0.1:9000;</div> <div>fastcgi_index index.PHP;</div> <div>fastcgi_param SCRIPT_FILENAME /usr/local/Nginx/html/$fastcgi_script_name;</div> <div>include fastcgi_params;</div> <div>}</div> <div>
8. 重启Nginx
# service Nginx reload
9. 测试是否成功
在/usr/local/Nginx/html/新建index.PHP的测试页面,内容如下:
<?PHP PHPinfo(); ?>
如果出现这个熟悉的界面,说明就大功告成了!Linux下一个基本的LNMP就搭建完毕了。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程小技巧的支持。
您可能感兴趣的文章:
- CentOS 5.5使用yum来安装LAMP(php运行环境)
- 在CentOS 6 中安装WordPress(一) 安装Apache,PHP环境
- Centos6.5和Centos7 php环境搭建方法
- CentOS+Nginx+PHP+MySQL标准生产环境配置方法
- Linux+php+apache+oracle环境搭建之CentOS下源码编译安装PHP
- 阿里云CentOS7搭建Apache+PHP+MySQL环境
- centos下yum搭建安装linux+apache+mysql+php环境的方法
- centos下yum搭建安装linux+apache+mysql+php环境教程
- Linux+php+apache+oracle环境搭建之CentOS下安装Oracle数据库
- Centos7下编译安装配置Nginx+PHP+MySql环境
- CentOS搭建PHP服务器环境简明教程
关于CentOS6.5 搭建 LNMP 和linux + nginx + mysql + php的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于CentOS 6.2 yum 安装配置 lnmp 服务器 (Nginx+PHP+MySQL)、CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)、centos 6.8 安装LNMP环境(linux+nginx+mysql+php)、Centos 6.8编译安装LNMP环境(Nginx+MySQL+PHP)教程等相关内容,可以在本站寻找。
本文标签: