centos系统的LNMP安装与配置
centos系统的LNMP安装与配置
文章来源:https://www.douban.com/note/578349921/
yum -y install make gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap lsof
安装MYSQL
1、创建群组
groupadd mysql
2、创建一个用户,不允许登陆和不创主目录
useradd -s /sbin/nologin -g mysql -M mysql
3、检查创建用户
tail -1 /etc/passwd
4、检查安装与否
rpm -qa|grep mysql
5、强制卸载
rpm -e mysql-libs-5.1.73-3.el6_5.x86_64 --nodeps
注意:MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具。 因此,我们首先要在系统中源码编译安装cmake工具。
6、安装cmake
wget http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz
tar zxvf cmake-2.8.12.2.tar.gz
cd cmake-2.8.12.2
./configure
make && make install
7、下载mysql
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz
8、解压mysql
tar zxvf mysql-5.6.17.tar.gz
9、进入mysql文件夹
cd mysql-5.6.17
10、cmake编译
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql \
-DWITH_DEBUG=0 \
-DWITH_SSL=system
11、安装
make && make install
12、修改/usr/local/mysql权限
chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
注意:如果遇到错误先remove CMakeCache.txt 再重新cmake
注意:关于my.cnf配置文件
在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索”$basedir/my.cnf” 就是安装目录下 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置! 注意:在CentOS 6.x版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字。 如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。 由于我们已经卸载了最小安装完成后的mysq库所以,就没必要操作了。
13、进入support-files目录
cd support-files/
14、复制my.cnf
mv /etc/my.cnf /etc/my.cnf.bak
如果愿意也可以复制配置文件到etc下
cp my-default.cnf /etc/my.cnf
15、执行初始化配置脚本,创建系统自带的数据库和表,注意配置文件的路径
/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
16、拷贝mysql安装目录下support-files服务脚本到init.d目录
#拷贝脚本
cp support-files/mysql.server /etc/init.d/mysqld
#赋予权限
chmod +x /etc/init.d/mysqld
17、设置开机启动
chkconfig mysqld on
启动MySQL
service mysqld start
或者
/etc/init.d/mysql start
注意:如果这里提示【Starting MySQL... ERROR! The server quit without updating PID file (/home/work/app/mysql/data/localhost.localdomain.pid).】
则修改你的my.cnf文件
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
server_id = 1
socket = /usr/local/mysql/mysql.sock
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
保存之后再重新启动service mysql start
18、MySQL5.6.x启动成功后,root默认没有密码,我们需要设置root密码。 设置之前,我们需要先设置PATH,要不,不能直接调用mysql
修改/etc/profile文件
vi /etc/profile
在文件末尾添加
PATH=/usr/local/mysql/bin:$PATH
export PATH
19、让配置立即生效
source /etc/profile
20、设置mysql密码
/usr/local/mysql/bin/mysqladmin -uroot -p password '你的密码'
注意:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
修改my.cnf
增加
[mysql]
socket = /usr/local/mysql/mysql.sock
[mysqldump]
socket = /usr/local/mysql/mysql.sock
[mysqladmin]
socket = /usr/local/mysql/mysql.sock
之后重启service mysql restart
21、赋予账号远程访问的权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
安装PHP
需要先安装依赖关系
libiconv库为需要做转换的应用提供了一个iconv()的函数,以实现一个字符编码到另一个字符编码的转换。
安装libiconv
1、wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
2、tar zxvf libiconv-1.14.tar.gz
3、cd libiconv-1.14
4、./configure --prefix=/usr/local/libiconv
5、make && make install
libmcrypt是加密算法扩展库。
安装ibmcrypt
1、wget --no-check-certificate https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download
2、tar zxvf libmcrypt-2.5.8.tar.gz
3、cd libmcrypt-2.5.8
4、./configure
5、make && make install
Mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启。 mhash的可以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存
安装mhash
1、wget --no-check-certificate https://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz/download
2、tar zxvf mhash-0.9.9.9.tar.gz
3、cd mhash-0.9.9.9
4、./configure
5、make && make install
mcrypt 是 php 里面重要的加密支持扩展库,Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。
安装mcrypt
1、wget --no-check-certificate https://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download
2、tar zxvf mcrypt-2.6.8.tar.gz
3、cd mcrypt-2.6.8
4、./configure
5、make && make install
注意:
1、编译mcrypt可能会报错:configure: error: *** libmcrypt was not foun
解决方法:
(1)vi /etc/ld.so.conf
(2)最后一行添加 /usr/local/lib/
(3)保存退出文件后 ldconfig
2、编译mcrypt可能会报错:/bin/rm: cannot remove `libtoolT': No such file or directory
解决方法:
修改 configure 文件,把RM='$RM'改为RM='$RM -f' 这里的$RM后面一定有一个空格。 如果后面没有空格,直接连接减号,就依然会报错。
正式编译php7.0
1、wget http://cn2.php.net/get/php-7.0.10.tar.gz/from/this/mirror
2、tar zxvf php-7.0.10.tar.gz
3、cd php-5.5.12
4、./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts
5、make && make install
注意:如果这里提示【make: *** [sapi/cli/php] 错误 1】
在安裝 PHP 到系统中时要是发生「undefined reference to libiconv_open'」之类的错误信息,那表示在「./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到要 link 的 iconv 函式库参数。 解决方法:编辑Makefile 大约77 行左右的地方: EXTRA_LIBS = ..... -lcrypt 在最后加上 -liconv,例如: EXTRA_LIBS = ..... -lcrypt -liconv 然后重新再次 make 即可。
6、修改fpm配置php-fpm.conf.default文件名称
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
7、复制php.ini配置文件
cp php.ini-production /usr/local/php/etc/php.ini
8、复制www.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.defaul /usr/local/php/etc/php-fpm.d/www.conf
9、复制php-fpm启动脚本到init.d
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
10、赋予执行权限
chmod +x /etc/init.d/php-fpm
11、添加为启动项
chkconfig --add php-fpm
12、设置开机启动
chkconfig php-fpm on
13、按照标准,给php-fpm创建一个指定的用户和组
创建群组
groupadd www
创建一个用户,不允许登陆和不创主目录
useradd -s /sbin/nologin -g www -M www
14、立即启动php-fpm
service php-fpm start
#或者
/etc/init.d/php-fpm start
安装nginx1.7
nginx所需的依赖关系,一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。如果系统已经yum 安装了这些库也没关系,无需卸载。直接编译安装最新的就可以了。为了一次性完成编译,先准备编译下面的依赖关系!
1.安装PCRE库
wget --no-check-certificate https://sourceforge.net/projects/pcre/files/pcre/8.35/pcre-8.35.tar.gz/download
tar -zxvf pcre-8.35.tar.gz
cd pcre-8.35
./configure
make && make install
2.安装zlib库
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make && make install
3.安装ssl
自由选择是否需要编译
wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
tar -zxvf openssl-1.0.1g.tar.gz
cd openssl-1.0.1g
./configure
make && make install
4.安装ngx_pagespeed库 ngx_pagespeed 是一个 Nginx 的扩展模块,可以加速你的网站,减少页面加载时间,它会自动将一些提升web性能的实践应用到网页和相关的资源(CSS、JS和图片)上,无需你修改内容和流程。
![]() |
wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.8.31.2-beta.zip
unzip v1.8.31.2-beta.zip
cd ngx_pagespeed-1.8.31.2-beta/
wget https://dl.google.com/dl/page-speed/psol/1.8.31.2.tar.gz
tar -xzvf 1.8.31.2.tar.gz
5、使用google-perftools提供的TCMalloc工具优化nginx和mysql
TCMalloc (google-perftools) 是用于优化C++写的多线程应用,比glibc 2.3的malloc快。这个模块可以用来让MySQL在高并发下内存占用更加稳定.
wget http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz
tar zxvf libunwind-1.1.tar.gz
cd libunwind-1.1
CFLAGS=-fPIC ./configure
make CFLAGS=-fPIC
make CFLAGS=-fPIC install
按照官方的说明,必然选择最新版本。
wget https://googledrive.com/host/0B6NtGsLhIcf7MWxMMF9JdTN3UVk/gperftools-2.2.tar.gz
tar zxvf gperftools-2.2.tar.gz
cd gperftools-2.2
./configure
make && make install
准备工作完成,现在开始安装nginx!,这里添加了前面准备的库关系,注意路径!
wget http://nginx.org/download/nginx-1.7.0.tar.gz
1、tar zxvf nginx-1.7.0.tar.gz
2、cd nginx-1.7.0
3、./configure \
4、
--user=www \
--group=www \
--prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_gzip_static_module \
--add-module=/usr/local/src/ngx_pagespeed-1.8.31.2-beta \
--with-google_perftools_module
5、make && make install
6、修改nginx.conf 配置文件
在server块里面 开启 ngx_pagespeed 模块
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;
location ~ ".pagespeed.([a-z].)?[a-z]{2}.[^.]{10}.[^.]+" { add_header "" ""; }
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }
location /ngx_pagespeed_statistics { allow 127.0.0.1; deny all; }
location /ngx_pagespeed_global_statistics { allow 127.0.0.1; deny all; }
location /ngx_pagespeed_message { allow 127.0.0.1; deny all; }
location /pagespeed_console { allow 127.0.0.1; deny all; }
开启 google_perftools 调优支持
#先在tmp创建tcmalloc
mkdir /tmp/tcmalloc
#赋予权限
chmod 0777 /tmp/tcmalloc/
vim nginx.conf
#一般我们在pid下面添加
google_perftools_profiles /tmp/tcmalloc;
#必须是重启,及时载入配置不会生效,nginx启动重启脚本下面有。
注将nginx加入service的方式如下:
1、vi /etc/init.d/nginx
2、
#!/bin/sh
# Comments to support chkconfig on RedHat Linux
# chkconfig: 2345 65 37
# description: A nginx daemon.
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME=nginx
DAEMON=/usr/local/nginx/sbin/$NAME
SCRIPTNAME=/etc/init.d/$NAME
# If the daemon file is not found, terminate the script.
test -x $DAEMON || exit 0
d_test() {
$DAEMON -t
}
d_start() {
$DAEMON || echo -n " already running"
}
d_stop() {
$DAEMON -s quit || echo -n " not running"
}
d_reload() {
$DAEMON -s reload || echo -n " could not reload"
}
case "$1" in
test)
d_test
echo "."
;;
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
reload)
echo -n "Reloading $DESC configuration..."
d_reload
echo "reloaded."
;;
restart)
echo -n "Restarting $DESC: $NAME"
d_stop
# Sleep for two seconds before starting again, this should give the
# Nginx daemon some time to perform a graceful stop.
sleep 2
d_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {test|start|stop|restart|reload}" >&2
exit 3
;;
esac
exit $?
3、注册nginx服务
chmod +x /etc/init.d/nginx
chkconfig --add nginx
chkconfig --level 2345 nginx on
chkconfig --list nginx
#重启nginx
service nginx restart
#开启nginx
service nginx start
#重载nginx配置
service nginx reload
#关闭nginx
service nginx stop
centos7.0安装后,配置LNMP
我用的是centos 7.0的,至于安装和联网这里就不说了。centos 安装好了后,我们要对系统进行一些调试常用工具安装。
相信有人和我一样会被机器报错发出的警告音。。搞的很心烦。。
rmmod pcspkr (暂时去掉) modprode pcspkr(重新开启)
彻底关掉beep的方法如下:
如果用的是bash作shell,在~/.bashrc的最后添加
setterm -blength 0
xset -b
在 console 下: setterm -blength 0
在 X-win 的 terminal 下: xset -b
ssh安装:
yum install openssh-server (安装)
sudo sshd service start (启动)
这样就可以在外面通过putty工具输入ip连接Liunx了 ,
查看ip命令: ifconfig -a 如果这个不行,试试ip addr
配置 YUM 源:
CentOS 7 的 默认 YUM 源里的软件包版本可能不是最新的,如果要安装最新的软件包就得配置下 YUM 源。
配置 YUM 源可以通过直接安装 RPM (Red Hat Package Manager) 包,或者修改 Repository
首先需要安装 EPEL ( Extra Packages for Enterprise Linux ) YUM 源,用以解决部分依赖包不存在的问题:
yum install -y epel-releas
wget安装:
yum -y install wget
---防火墙 端口
/etc/init.d/iptables stop
/etc/init.d/iptables statu
vim 安装:
yum install vim
配置vim:
vim /etc/vimrc
如何配置可以看之前写过的一个笔记http://blog.csdn.net/qq_27416209/article/details/51026193
LNMP环境搭建(centOs7.0 ×64):
CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm # rpm -ivh mysql-community-release-el7-5.noarch.rpm # yum install mysql-community-server |
成功安装之后重启mysql服务
# service mysqld restart |
初次安装mysql是root账户是没有密码的
设置密码的方法
# mysql -uroot
mysql>
set
password
for
‘root’@‘localhost’ = password(
'mypasswd'
);
mysql>
exit
<div> yum install -y php php-bcmath php-fpm php-gd php-json php-mbstring php-mcrypt php-mysqlnd php-opcache php-pdo php-pdo_dblib php-pgsql php-recode php-snmp php-soap php-xml php-pecl-zip phpMyAdmin </div>启动php
-
下载对应当前系统版本的nginx包(package)
# wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2
建立nginx的yum仓库
# rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
3
下载并安装nginx
# yum install nginx
4
启动nginx服务
systemctl start nginx
配置:
/etc/nginx/conf.d/default.conf 新手记得先备份一个
server {
listen 80;
server_name self;# 添加服务器:服务器名称
location / {
root /usr/share/nginx/html/self; # 指明本服务器的根目录
index index.html index.htm index.php;# 默认主页设置]
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ { # php 交互说明
# root html;
fastcgi_pass 127.0.0.1:9000;# 通用网关接口
# fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/self$fastcgi_script_name;
# 接口交互文件路径,使用绝对路径,因为配置文件与 localhost 所在位置距离较远。
include fastcgi_params;# 保证能在 url 中传递参数
}
}
安装Git
yum install git
在 LINUX 系统中创建项目仓库 步骤:
i:创建仓库目录 (比如:mkdir /usr/repos )
ii:在仓库目录中执行指令:git init
iii:建好了。 仓库目录下多了一个隐藏文件夹 :.git