标签:
在centos上面搭建当今性能相对较好的一套服务器环境LNMP。即:Linux + Nginx + MySQL + Php 。由于 Nginx 比Apache更轻巧一些,而且在nginx的官方网站上面对于nginx处理的多并发量是100000。所以,在现在网站会面临这种大并发量的时候,使用Nginx 来作为服务器程序确实是一个不错的选择,不过如果使用LAMP环境的话,对于php的执行过程是使用mod-php这样的一个apache 模块,但使用LNMP的话,是使用一个叫做php-fpm 的一个单独的进程来完成处理,而且,Nginx 本身也是一个独立的进程,所以对资源占用就比LAMP环境下多了一个进程。主要是没有安装libmcrypt相关的包
直接使用yum install libmcrypt* -y安装完成后,在重新编译
在编译出现异常,在重新编译的时候,需要先删除mysql目录下的CMakeCache.txt这个文件,然后再进行编译!!!
执行安装
make
make install
授权:chmod
+w /usr/local/mysql
chown
-R mysql:mysql /usr/local/mysql
#改变目录拥有者与所属组
ln
-s /usr/local/mysql/lib/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.16
cd
support-files/
cp my-large.cnf /etc/my.cnf
#选择默认配置文件
适合大型服务器
cp mysql.server /etc/init.d/mysqld
#复制启动文件
1.
若有需要请先修改 mysql 的配置 my.cnf
vi /etc/my.cnf
在[mysqld]下面添加(安装的mysql在/usr/local/mysql文件夹下)
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
log-error = /usr/local/mysql/mysql_error.log
pid-file = /usr/local/mysql/data/mysql.pid
default-storage-engine=MyISAM
user = mysql
2.
mysql 初始化安装 执行以下命令
/usr/local/mysql/scripts/mysql_install_db
\
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data \
--user=mysql
3. 将 mysql 加入开机启动
chmod +x /etc/init.d/mysqld
vi
/etc/init.d/mysqld (编辑此文件,查找并修改以下变量内容:)
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
继续执行命令:
chkconfig
--add mysqld
chkconfig --level 345 mysqld on
为MySQL配置环境变量,以后使用起来方便
export PATH=/usr/local/mysql/bin:$PATH
4. 启动 mysql
service mysqld start
设置密码
安全模式登录
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
当然用户别忘了授权不然是登录不了mysql服务器的
rpm 形式安装Mysql
下载所需软件 进行安装
rpm -ivh libaio-0.3.93-4.i386.rpm
rpm -ivh MySQL-server-5.5.14-1.rhel5.i386.rpm
rpm -ivh MySQL-client-5.5.14-1.rhel5.i386.rpm
rpm -ivh MySQL-shared-5.5.14-1.rhel5.i386.rpm
rpm -ivh MySQL-devel-5.5.14-1.rhel5.i386.rpm
启动MySQL服务器
service mysql start
设置密码
省略不说了
linux采用rpm方式重新安装mysql,完成后Mysql启动时候报告错误,找不到pid文件
Starting MySQL..Manager of pid-file quit without updating file.[FAILED]
此时需要采用safe模式启动
/usr/bin/mysqld_safe --user=mysql
特别要注意kill旧Mysql进程:,如果还有错误,参考下列解决办法:
1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql
/var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld!
2.可能进程里已经存在mysql进程
解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!
3.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !http://blog.rekfan.com/?p=186
4.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
5.skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
6.错误日志目录不存在
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限
安装mysql 出现如下类似错误的话
conflicts with file from package mysql-libs-
需要把以前安装的mysql相关的包卸载掉。
说明:使用rpm安装等时候,不能向编译安装一样选择安装路径,现在用命令来查看一下mysql都安装到哪里去了
[root@localhost ~]# find / -name mysql -print
/etc/logrotate.d/mysql
/etc/rc.d/init.d/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/var/lock/subsys/mysql
/usr/lib/mysql
/usr/include/mysql
/usr/share/mysql
/usr/bin/mysql
而 data默认放在:/var/lib/mysql
mysql默认安装在了:/usr/share/mysql中
后面的版本号不全也没关系,如果有依赖关系就不能卸载,再加上--nodpes参数即可。不检查依赖强制删除,这个结果就是只删除了httpd,跟他有依赖关系的其它软件是不会删除的,但是这些软件因为系统里没有了httpd也会不能运行,这是所谓的没有删除干净。
yum -y remove httpd这种方式是把与httpd有依赖关系的所有软件一并删除。比如php,mod_ssl等等。这就干净了。
执行了./configure之后就会进行一系列的检查,以便于之后的编译过程,过程中可能会报以下错误:
1、./configure: error: the HTTP rewrite module requires the PCRE library
安装pcre-devel解决问题
yum -y install pcre-devel
2、./configure: error: the HTTP cache module requires md5 functionsfrom OpenSSL library. You can either
disable the module by using--without-http-cache option, or install the OpenSSL library into the system,or build the OpenSSL library statically from the source with nginx by using--with-http_ssl_module --with-openssl=<path> options.
(centos6和nginx暂时不会出现该错误)
解决办法:
yum -y install openssl openssl-devel
3、./configure:
error: the HTTP gzip module requires the zlib library
解决办法:
yum install -y zlib-devel
一步解决办法:yum -y install pcre-devel openssl openssl-devel
zlib-devel
执行make 会生成makefile 用于引导之后的安装过程,操作如下图:可能会报错,那就按照提示安装即可
执行过了 #make install操作就安装完成了,Nginx的默认安装路径是在/usr/local/nginx目录下的接下来我们启动Nginx 服务,进入到/usr/local/nginx/sbin目录,执行./nginx就可以启动Nginx服务了。
当然启动过程中有可能会发生端口冲突错误,
Nginx [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
直接办法,关闭端口占用进程(不建议这么做,最好更改端口,或者查出所在程序)sudo fuser -k 80/tcp或者
netstat -tunlp |grep 80
nginx操作常用命令:启动:./nginx 停止:./nginx -s stop 或者 ./nginx -s quit 重启:./nginx -s
reload 或者
service nginx reload 查看版本号:./nginx -v 检查配置文件是否正确:/nginx -t
编译安装php
首先还是同样的上 http://php.net 官网下载php的源码包,然后移动到/usr/local/目录下进行解压,例如解压成php,然后cd进去
先装依赖包(两种方法):
1、yum install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel -y
2、 单独下载安装 ,只不过下边configure时要单独指定其位置,如--with-jpeg-dir=/usr/local/jpeg
执行./configure
--prefix=/usr/local/php-5.6
--with-config-file-path=/usr/local/php-5.6/etc
--with-bz2
--with-curl
--enable-ftp
--enable-sockets
--disable-ipv6
--with-gd
--with-jpeg-dir=/usr/local
--with-png-dir=/usr/local
--with-freetype-dir=/usr/local
--enable-gd-native-ttf
--with-iconv-dir=/usr/local
--enable-mbstring
--enable-calendar
--with-gettext
--with-libxml-dir=/usr/local
--with-zlib
--with-pdo-mysql=mysqlnd
--with-mysqli=mysqlnd
--with-mysql=mysqlnd
--enable-dom
--enable-xml
--enable-fpm(php5.3以上是自带fpm补丁包的)
然后继续make和make install
配置php
启动php-fpm
执行以上命令,如果没报错一般情况下表示启动正常,如果不放心,也可以通过端口判断是PHP否启动,执行命令
进入php文件夹下,执行命令cp php.ini-development php.ini,并修改php.ini中的一些参数,修改nginx配置文件如下
# vi /usr/local/nginx/conf/nginx.conf
location / {
root /www;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www$fastcgi_script_name;
include fastcgi_params;
}
项目根目录为www,配置文件不用修改什么,只是将一些注释去掉而已,然后编写php测试页面index.php
而nginx最常用的方法是利用 tcp/ip 协议连接 phpfastcgi 接口, 因此要连接php必须先启动fastcgi程序.
启动方法:
/usr/local/bin/php-cgi -b 127.0.0.1:9000 -c /usr/local/php5.6/etc/php.ini &
-b 用于指定监听地址与端口
如果想指定配置文件位置,可以使用-c选项
注意, nginx 服务器负责所有的客户端请求, 包括了静态网页解析 (html), 页面中的其他对象如 ccs文件jpg png文件等传输, 但遇到客户需要请求 php 页面请求或 php 源码解析时, nginx将会把页面传递到fastcgi接口, 由 php-cgi 程序进行解析.
然后执行./nginx,如果成功并且显示以下页面就说明配置成功了
用phpMyAdmin既能够测试MySQL的链接情况也可以相当于装了个Mysql管理工具,测试结果如下说明整个环境你已经配置完成了
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/tiaozhanji_xian/article/details/47447941