1 Linux系统
Linux系统分支众多,其发行版本可以根据打包方式分为两类:一类是基于Dpkg的Debian系,一类是基于RPM的Red Hat系。前者由社区组织维护发行,包括Debian、Ubuntu等;后者一般是商业公司维护发布,包括CentOS、Fedora、RHEL等。在稳定性方面,红帽RHEL和CentOS性能相对较好。
很牛逼的样子?NO,请叫我 wiki 搬运工。那么如何查看自己的主机类型呢?
查看系统使用的Linux内核版本
# cat /proc/version
Linux version 2.6.32-358.6.2.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Thu May 16 20:59:36 UTC 2013
查看系统所属的Linux发行版本
cat /etc/redhat-release
CentOS release 6.5 (Final)
2 更新基于Shell前端的RPM包管理器:yum源
相对于用RPM包安装软件,yum能更方便快捷,还能自动安装所需依赖包。因此,我们需要根据自己的主机类型找到对应的yum源进行更新。考虑到和谐,推荐使用国内的开源镜像源,例如 网易、华科、搜狐 等。这里以163镜像为例:
##### 先备份原有的yum源文件
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup;
##### 切换到yum源文件根目录
# cd /etc/yum.repos.d/
##### 根据步骤1中内核版本获取网易相应的CentOS的Base repo
# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
##### 重命名为CentOS-Base.repo
# mv CentOS6-Base-163.repo CentOS-Base.repo
##### 建立缓存
# yum makecache
##### 更新yum资源库(第一次可能会持续较长时间)
# yum update
3 进入正题:搭建LNMP环境
直接使用下面这条命令即可搭建LNM环境,这其中除了php-fpm外还包括了其它几个常用的php扩展,例如php-dev、php-mysql等。
# yum -y install nginx mysql mysql-server php-fpm php-devel php-cli php-mysql
php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy
4 查看LNMP是否搭建成功:
可以通过以下命令分别检测 Nginx、Mysql、Php 的版本。为了站点安全,大家不要把这些信息透露出来,包括在以后自己站点的 http 头等位置(方法会在接下来的文章中说明)。
##### Nginx版本,已 * 号代替
# nginx -v
nginx version: nginx/1.*.*
##### Mysql版本,已 * 号代替
# mysql -V
mysql Ver 14.** Distrib 5.*.**, for redhat-linux-gnu (x86_64) using readline 5.1
##### Php版本,已 * 号代替
# php-fpm -v
PHP 5.*.* (fpm-fcgi) (built: *** ** **** **:**:**)
Copyright (c) 1997-2012 The PHP Group
5 (开机)启动 LNMP 环境
##### 重启 LNMP
# service nginx restart; service php-fpm restart; service mysqld restart;
##### 设置 LNMP 开机启动
# chkconfig nginx on; chkconfig php-fpm on; chkconfig mysqld on;
6 其它 LNMP 事项
这个时候,打开自己的域名(假设已绑定好了主机IP),可以看到nginx的welcome页面(其实就是/usr/share/nginx/html/index.html)!如果稍微调整下 nginx 的配置文件 default.conf 就可以浏览 php 页面了(会另文说明)。下面是 LNMP 环境默认的一些配置和日志信息。
##### 默认Nginx配置文件
/etc/nginx/nginx.conf #具体配置在 /etc/nginx/conf.d/default.conf 中
##### 默认Nginx配置文件设置的web根路径
/usr/share/nginx/html/
##### 默认Nginx日志目录
/var/log/nginx
##### 默认Nginx端口
80
##### 默认php-fpm配置文件
/etc/php-fpm.conf
##### 默认php-fpm日志目录
/var/log/php-fpm
##### 默认php配置文件
/etc/php.ini
##### 默认mysql配置文件
/etc/my.cnf
##### 默认mysql错误日志文件
/var/log/mysqld.log
##### 默认mysql端口
3306
systemctl start mysql.service 启动
systemctl enable mysql.service:开机自启动
显示所有已启动的服务 chkconfig --list systemctl list-units —type=service
检查服务状态 service httpd status systemctl status httpd.service(服务详细信息) systemctl is-active httpd.service
使某服务自动启动 chkconfig --level 3 httpd on systemctl enable httpd.service
使某服务不自动启动 chkconfig --level 3 httpd off systemctl disable httpd.service
卸载:rpm -e --nodeps mariadb-devel-5.5.41-2.el7_0.x86_64
卸载:rpm -e --nodeps mariadb-libs-5.5.41-2.el7_0.x86_64
rpm -qa | grep -i mysql
问题:
1.service mysqld restart:无法启动
[root@iZ28vri4x8cZ ~]# vi /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
After=network.target
[Service]
ExecStart=/usr/bin/mysqld --defaults-file=/etc/mysql/my.cnf --datadir=/var/lib/mysql --socket=/var/run/mysqld/mysqld.sock
User=mysql
Group=mysql
WorkingDirectory=/usr
[Install]
WantedBy=multi-user.target
2.更改mysql密码
update user set password=PASSWORD("新密码") where user='root'
重启mysql
3.nginx报 File not found 错误
访问php文件提示not found,
可能原因之一:/etc/nginx/conf.d/default.conf的root路径和php解析部分配置不对。
解决:将root定义放到server下,或者在php解析部分的root定义为全路径(在server块下,加root <path>)。同时将fastcgi_param部分改为$document_root$fastcgi_script_name;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}