开放阿里云安全组规则
selinux可能会致使编译安装失败,我们先禁用它。永久禁用,需要重启生效
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
临时禁用,不需要重启
setenforce 0
开放防火墙端口号
/sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT /sbin/iptables -I INPUT -p tcp –dport 3306 -j ACCEPT /etc/init.d/iptables save 保存修改 service iptables restart 重启防火墙,修改生效
安装必备类库工具
yum -y install gcc automake autoconf libtool make gcc-c++ glibc libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel pcre pcre-devel libmcrypt libmcrypt-devel cmake
几点说明:
pcre、openssl、zlib是安装nginx时需要的
cmake是安装MySQL时需要的配置
php、mysql、nginx、cmake下载地址
vi /usr/local/src/url http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz http://nginx.org/download/nginx-1.8.1.tar.gz http://jp2.php.net/distributions/php-5.6.30.tar.gz http://cdn.mysql.com//archives/mysql-5.6/mysql-5.6.24.tar.gz
下载
wget -P /usr/local/src -i /usr/local/src/url
解压
cd /usr/local/src for i in *.tar.gz ; do tar zxvf $i; done
安装cmake
cd cmake-2.8.10.2 ./bootstrap gmake && gmake install
安装mysql
创建mysql安装目录、组、账号
groupadd mysql ; useradd -g mysql -s /sbin/nologin mysql mkdir -p /data/mysql mkdir -p /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data/mysql
开始安装
cd ../mysql-5.6.24 cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DMYSQL_DATADIR=/data/mysql \ -DMYSQL_TCP_PORT=3306 \ -DENABLE_DOWNLOADS=1 . make && make install
初始化数据库 拷贝配置文件
cd /usr/local/mysql/ scripts/mysql_install_db –user=mysql –datadir=/data/mysql cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf cp support-files/mysql.server /etc/init.d/mysqld
添加启动目录
vim /etc/profile
按G移动光标到最后一行o插入以下两行
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH export PATH
更新配置文件
source /etc/profile
设置开机启动并启动
chkconfig mysqld on service mysqld start
登陆测试,默认是没有密码,直接回车就可进入
mysql -uroot -p
设置mysql密码
SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘password’);
查看用户
select user,host from mysql.user;
删除不必要的用户
drop user “”@localhost; drop user “”@c65mini.localdomain; drop user root@c65mini.localdomain; drop user root@’::1′;
赋予账号远程访问的权限
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;
此时远程工具还不能登录,修改root为%
mysql>use mysql;
mysql>update user set host='%' where host='localhost' and user='root';
mysql>flush privileges;
mysql>select host,user from user; 查看是否修改成功
针对数据库创建一个全部权限的用户
grant all on wordpress.* to ‘admin’@’localhost’ identified by ‘123456’;
UPDATE user SET password=PASSWORD(‘123456′) WHERE user=’root’;
安装php依赖包
yum install libmcrypt libmcrypt-devel mhash mhash-devel libxml2 libxml2-devel bzip2 bzip2-devel
安装php
cd /usr/local/src/php-5.6.30
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm \
--with-fpm-user=php-fpm \
--with-fpm-group=php-fpm \
--with-mysql=/usr/local/mysql \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-libxml-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-iconv-dir \
--with-zlib-dir \
--with-mcrypt \
--enable-soap \
--enable-gd-native-ttf \
--enable-ftp \
--enable-mbstring \
--enable-exif \
--enable-zend-multibyte \
--disable-ipv6 \
--with-pear \
--with-curl \
--with-openssl \
-enable-xml \
--disable-fileinfo
make && make install
创建用户
groupadd www ; useradd -g www /sbin/nologin www
修改配置文件
cp php.ini-production /usr/local/php/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
cp /usr/local/src/php-5.6.30/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
添加php-fpm至服务列表并设置开机自启
chkconfig --add php-fpm chkconfig --list php-fpm chkconfig php-fpm on
启动服务
service php-fpm start
ps aux | grep php-fpm 检测进程
安装nginx
cd /usr/local/src/nginx-1.8.1 ./configure \ –prefix=/usr/local/nginx \ –user=www \ –group=www \ –with-http_realip_module \ –with-http_sub_module \ –with-http_gzip_static_module \ –with-pcre
make && make install
编写nginx启动脚本,并加入系统服务
vi /etc/init.d/nginx #!/bin/bash # chkconfig: – 30 21 # description: http service. # Source Function Library . /etc/init.d/functions # Nginx Settings NGINX_SBIN="/usr/local/nginx/sbin/nginx" NGINX_CONF="/usr/local/nginx/conf/nginx.conf" NGINX_PID="/usr/local/nginx/logs/nginx.pid" RETVAL=0 prog="Nginx" start() { echo -n $"Starting $prog:" mkdir -p /dev/shm/nginx_temp daemon $NGINX_SBIN -c $NGINX_CONF RETVAL=$? echo return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc -p $NGINX_PID $NGINX_SBIN -TERM rm -rf /dev/shm/nginx_temp RETVAL=$? echo return $RETVAL } reload(){ echo -n $"Reloading $prog: " killproc -p $NGINX_PID $NGINX_SBIN -HUP RETVAL=$? echo return $RETVAL } restart(){ stop start } configtest(){ $NGINX_SBIN -c $NGINX_CONF -t return 0 } case "$1" in start) start ;; stop) stop ;; reload) reload ;; restart) restart ;; configtest) configtest ;; *) echo $"Usage: $0 {start|stop|reload|restart|configtest}" RETVAL=1 esac exit $RETVAL
保存后,更改权限:
chmod 755 /etc/init.d/nginx chkconfig –add nginx chkconfig nginx on
添加nginx对fastcgi的支持,首先备份默认的配置文件
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.confbak cp /urr/local/nginx/conf/nginx.conf.default /usr/local/nginx/conf/nginx.conf
编辑nginx.conf
location / { root /usr/local/nginx/html; index index.php index.html index.htm; }
取消一下内容的注释
location ~ \.php$ { root /var/www/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; include fastcgi_params; }
启动看是否有进程
service nginx start ps aux |grep nginx
在项目目录下新建index.php
vi /var/www/html/index.php <?php $conn=mysql_connect('127.0.0.1','root',''); if ($conn){ echo "LNMP platform connect to mysql is successful!"; }else{ echo "LNMP platform connect to mysql is failed!"; } phpinfo(); ?>
浏览器访问测试,如看到以下内容则表示LNMP平台构建完成