nologin mysql
初次编译mysql的时候时间比较长,请耐心等待吧.
cd /usr/local/src
tar -zxf mysql-5.6.13.tar.gz
cd mysql-5.6.13
#注意下面是cmake .注意点
cmake .
make && make install
#复制mysql配置文件
cp support-files/my-default.cnf /etc/my.cnf
#创建系统数据库表
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql
#更改权限
cd /usr/local/mysql
chown -R root:mysql .
chown -R mysql:mysql data
#把mysql添加到系统服务中去
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#启动mysql启动的时候,一直不动的话按下enter.,就行了
/usr/local/mysql/bin/mysqld_safe --user=mysql &
#查看mysql是否启动
netstat -tunpl | grep 3306
#或者pstree,看到有mysqld进程也行
#修改mysql密码
/usr/local/mysql/bin/mysqladmin -u root password "xxxxx"
#进入mysql中删除空密码和匿名用户
/usr/local/mysql/bin/mysql -u root -p
select host,user,password from mysql.user;
delete from mysql.user where password="" or user="";
flush privileges;
#也可以在mysql修改用户密码(只是说明一下)
set password form 'root'@'localhost' = password('123456');
#关闭mysql的时候可以使用
/usr/local/mysql/bin/mysqladmin -u root -p shutdown
//phpfensi.com
#把mysql添加到开机启动
vim /etc/rc.local
#在最后再加一行
/usr/local/mysql/bin/mysqld_safe --user=mysql &
#最后做一个软链接方便使用mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/
nginx安装(此处我本人安装了基于nginx改版的tengine,nginx的安装跟这基本完全一样,你完全可以参照并完整安装).
nginx安装前编译安装pcre zlib openssl[openssl安装用./config]
pcre安装:
cd /usr/local/src
tar -jxf pcre-8.31.tar.bz2
cd pcre-8.31
./configure
make && make install
zlib安装:
cd /usr/local/src
tar -zxf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make && make install
openssl安装:
cd /usr/local/src
tar -zxf openssl-1.0.1c.tar.gz
cd openssl-1.0.1c
./config
make && make install
//注意这时我安装tengine了,如果你用nginx,完全参照安装就行
cd /usr/local/src
useradd -M -s /sbin/nologin nginx
#如果是nginx,请把这里换成nginx
tar -zxf tengine-2.0.1.tar.gz
cd tengine-2.0.1
#注意的是with-pcre这些都指向/usr/local/src这种目录,这非常奇怪
./configure --with-pcre=/usr/local/src/pcre-8.31 --with-http_ssl_module --with-zlib=/usr/local/src/zlib-1.2.8 --with-openssl=/usr/local/src/openssl-1.0.1c --with-http_concat_module=shared(注:如果是nginx的话不需要 --with-http_concat_module=shared)
make && make install
#做软链接方便nginx启动
ln -s /usr/local/nginx/sbin/nginx /usr/bin/
#修改nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
把#user nobody 改成 user nginx;
#测试一下nginx配置文件
nginx -t
#启动nginx
nginx
#说一下nginx启动的一些事情
#一般来说在nginx的配置文件修改后进行如下操作,nginx -t检测一下配置文件是否正确,如果正确的话
#再使用nginx -s reload 使nginx平滑启动
#把nginx添加到开机启动
vim /etc/rc.local
#在最后新加一行
/usr/local/nginx/sbin/nginx
#查看nginx是否启动
netstat -tunpl | grep 80
pstree 看下有没有nginx就行了
安装php:
cd /usr/local/src
useradd -M -s /sbin/nologin php
tar -jxf php-5.5.12.tar.bz2
cd php-5.5.12
./configure --enable-opcache --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring=all --with-pdo-mysql --enable-sockets --enable-mbstring --enable-fpm --with-curl --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --with-gd --with-mcrypt --with-libxml-dir=/usr --enable-xml --with-openssl --with-iconv=/usr/local/iconv
make ZEND_EXTRA_LIBS='-liconv'
make install
cp php.ini-development /usr/local/php/etc/php.ini
#配置php-fpm
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
将
user = nobody
group = nobody
改为
user = php
group = php
#启动php-fpm
/usr/local/php/sbin/php-fpm
#把php-fpm添加到开机启动
vim /etc/rc.local
#最后一行加上
/usr/local/php/sbin/php-fpm
#修改nginx配置文件使之支持php
vim /usr/local/nginx/conf/nginx.conf
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
修改为
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;
}
#也顺便把gzip给开启下吧
gzip on前面的#去掉
修改完配置之后:nginx -s reload
ok,现在来测试一下环境.
cd /usr/local/nginx
cd html
vim test.php
写上:<?php phpinfo();?>
然后访问一下localhost/test.php,正常的话,就一切正常了,如果出问题的话,请看nginx有没有启动,php-fpm有没有启动,注明几个问题如果修改php配置文件的时候,需要重启php-fpm就可以了.
#先关闭php-fpm
pkill php-fpm
#然后运行
/usr/local/php/sbin/php-fpm
#就可以了可以看到php-fpm就启动了pstree可以看到这个进程
pstree
为了更方便的使用php和php-fpm,我做了两个链链接.
ln -s /usr/local/php/sbin/php-fpm /usr/bin/
ln -s /usr/local/php/bin/php /usr/bin/
lnmp安装就彻底完成了,有什么问题可以联系我,这里没没讲到如何优化一些配置的问题,以后可以会写文章分析.
在这里也特别说明一下nginx如何支持path_info这种形式,配置文件中可以这样写,当然可能对你不需要.
location ~ ^(.+\.php)(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}。