rhel6上搭建lnmp架构以及遇到的一些错误并排除方法
先装好rhel6.5 配置好实验环境关掉NetworkManager,并停止掉开机自启动
# service NetworkManager stop
# chkconfig -- list NetworkManager
# chkconfig NetworkManager off 关掉iptables
# iptables -F
# service iptables save
iptables£o·àe1ò±£′μ /etc/sysconfig/iptables£o [è·¨]
# chkconfig iptables off 关掉selinux
# getenforce
Enforcing
# setenforce
usage:setenforce [ Enforcing | Permissive | 1 | 0 ]
# setenforce 0
#
# vim /etc/selinux/config 打开这个档案以后你可以看到如下的内容,把SELINUX的值改成disabled就好
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
修改主机名映射,可以不改,但是为了方便还是改下吧
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# echo "192.168.20.253 duwensql.cn MySQL" >> /etc/hosts
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.20.253 duwensql.cn MySQL
# 修改主机名,就是编辑下面的这个档案,这里只贴上修改后的内容
# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=duwensql.cn
GATEWAY=192.168.20.2
NTPSERVERARGS=iburst
# 配置本地yum源
#
# mount /dev/sr0 /mnt/
mount: block device /dev/sr0 is write-protected, mounting read-only
# df -h | tail -1
/dev/sr0 3.6G3.6G 0 100% /mnt
# echo "/dev/sr0 /mnt/ iso9660 defaults 0 0" >> /etc/fstab
# rm -rf /etc/yum.repos.d/*
# cat > /etc/yum.repos.d/rhel6.repo <<EOF
>
> name=rhel6-source
> baseurl=file:///mnt
> enabled=1
> gpgcheck=0
> EOF
# yum clean all
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Cleaning repos: rhel6-source
Cleaning up Everything
# yum list 检测依赖环境,包括gcc,gcc-c++,autoconf,automake,zlib ,zlib-devel, openssl ,openssl-devel ,pcre-devel,
#
# yum install -y gcc gcc-c++ autoconf automake
# yum install -y zlib zlib-devel openssl openssl-devel pcre-devel
为了方便从xshell上传软件包,这里安装一个工具
#rpm /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm-ih
warning: /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
###########################################
###########################################
# //上传软件包:nginx-1.6.0.tar.gzmysql-5.5.30.tar.gzphp-5.4.14.tar.bz2
# rz
z waiting to receive.**B0100000023be50
# ls
anaconda-ks.cfginstall.log.syslog nginx-1.6.0.tar.gz公共的视频文档音乐
install.log mysql-5.5.30.tar.gzphp-5.4.14.tar.bz2模板 图片下载桌面正式开始安装MySQL了
解压到指定目录/usr/local/src/
#
# tar -zxf mysql-5.5.30.tar.gz -C /usr/local/src/
建一个mysql用户,这里把这个用户显示出来
# tail -1 /etc/passwd
mysql:x:500:500::/home/mysql:/sbin/nologin
#
//安装cmake
# yum install -y cmake
建立mysql的目录
# mkdir /server
#cd /usr/local/src/mysql-5.5.30/
# cmake -DCMAKE_INSTALL_PREFIX=/server/mysql-5.5 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSERS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINT=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/server/mysql/data -DMYSQL_USER=mysql
//报错啦啦啦啦
CMake Error at cmake/readline.cmake:83 (MESSAGE):
Curses library not found.Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:127 (FIND_CURSES)
cmake/readline.cmake:217 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:269 (MYSQL_CHECK_READLINE)
-- Configuring incomplete, errors occurred!
//这个错误就是ncurses这个依赖没有装,yum安装一下
# yum -y install ncurses-devel //装了那个ncurses依赖,还是报错,就只好把这个CMakeCache.txt找出来干掉了
# find / -name CMakeCache.txt
/usr/local/src/mysql-5.5.30/CMakeCache.txt
# rm -rf /usr/local/src/mysql-5.5.30/CMakeCache.txt //OK,现在重新cmake
//呐开心不,没有报错了呢!!!
现在make &&make install,过程就不写了
配置运行环境
# cd /server/
# ls
mysql-5.5
# chown -R mysql:mysql /server/mysql-5.5/
复制mysql配置文件
# cd /etc/
# ll my.cnf
-rw-r--r--. 1 root root 251 8月 9 2013 my.cnf
# mv ./my.cnf ./my.cnf.back
# cp /usr/local/src/mysql-5.5.30/support-files/my-large.cnf /etc/my.cnf
# 这个步骤是加入开机启动项
# cp /usr/local/src/mysql-5.5.30/support-files/mysql.server /etc/init.d/mysqld5.5
# chmod +x ./mysqld5.5
# pwd
/etc/init.d
# //这里要改下,大概在第70行
# vim /etc/init.d/mysqld5.5
# head -71/etc/init.d/mysqld5.5 |tail -7
then
basedir=/server/mysql-5.5
bindir=/server/mysql-5.5/bin
if test -z "$datadir"
then
datadir=/server/mysql-5.5/data
fi
# //加入开机启动项
# chkconfig mysqld5.5 on
# chkconfig --list mysqld5.5
mysqld5.5 0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
# 初始化mysql
#cd /usr/local/src/mysql-5.5.30/scripts/
# chmod +x mysql_install_db
# ./mysql_install_db --defaults-file=/etc/my.cnf --basedir=/server/mysql-5.5 --datadir=/server/mysql-5.5/data --user=mysql
Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/server/mysql-5.5/bin/mysqladmin -u root password 'new-password'
/server/mysql-5.5/bin/mysqladmin -u root -h duwensql password 'new-password'
Alternatively you can run:
/server/mysql-5.5/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default.This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /server/mysql-5.5 ; /server/mysql-5.5/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /server/mysql-5.5/mysql-test ; perl mysql-test-run.pl
Please report any problems with the /server/mysql-5.5/scripts/mysqlbug script!
# 开启mysql
# /etc/init.d/mysqld5.5 start
Starting MySQL... [确定]
# 测试MySQL
//我这里最开始在家目录输入mysql显示没有命令,是因为没有加入环境变量的缘故啦,这里就不写出来了,直接到绝对路径去测试
root@duwensql mysql-test]# cd /server
# ls
mysql-5.5
# cd mysql-5.5/
# ls
binCOPYINGdatadocsincludeINSTALL-BINARYlibmanmysql-testREADMEscriptssharesql-benchsupport-files
# cd bin/
# ./mysql
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.30-log Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.04 sec)
mysql> ctrl + c 退出
给他加个环境变量吧
# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
# PATH="$PATH":/server/mysql-5.5/bin/ 设置mysql的root账户密码,并测试登陆
# mysqladmin -uroot password '123456'
# mysql -u root -p123456
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.5.30-log Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> ctrl + c 退出
MySQL安装完了
来安装nginx吧
解压
# tar -zxf nginx-1.6.0.tar.gz 编译
# ./configure --prefix=server/nginx-1.6.0 --user=nginx --group=nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module 结果太多就不写了,放一个图
make&&make install
# make -j 4 && make install 开始配置
# pwd
/server/nginx-1.2.8
# vim conf/nginx.conf 第二行加
user nginx nginx; 然后加下面的内容,括号{前面有空格
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /server/nginx-1.2.8/html$fastcgi_script_name;
include fastcgi_params;
} 大概的位置如下图
启动服务
# /server/nginx-1.2.8/sbin/nginx 把服务加入开机启动
# echo '/server/nginx-1.2.8/sbin/nginx & ' >> /etc/rc.local
# 测试下
测试配置文件和重新加载配置文件
# /server/nginx-1.2.8/sbin/nginx -t
nginx: the configuration file /server/nginx-1.2.8/conf/nginx.conf syntax is ok
nginx: configuration file /server/nginx-1.2.8/conf/nginx.conf test is successful
# /server/nginx-1.2.8/sbin/nginx -s reload 来安装PHP
给PHP添加扩展模块:libmcrypt-2.5.8.tar.gz
1、 让 PHP 编译支持这个功能
2、 生成扩展模块
3、 --with-mcrypt=/usr/local/
安装libmcrypt库
# tar -zxf libmcrypt-2.5.8.tar.gz
# cd libmcrypt-2.5.8
# ./configure --prefix=/usr/local/
# echo $?
0
# make -j 4 && make install 加个环境
# yum -y install php-pear 解压以及编译
//在这一步出了好多好多错误,始料不及啊,本文把错误和解决贴上,如果还是不明白的话可以直接搜索错误,这里就不写了
# tar jxf php-5.4.14.tar.bz2 -C /usr/local/src/
# cd /usr/local/src/php-5.4.14/
# ./configure --prefix=/server/php-5.4-nginx --with-config-file-path=/server/php-5.4-nginx --with-mysql=/server-5.5/ --with-mysqli=/server/mysql-5.5/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-mcrypt=/usr/local/ 报错1
#######
configure: error: xml2-config not found. Please check your libxml2 installation.
# 解决1
# yum -y install libxml2* 重新编译
# ./configure --prefix=/server/php-5.4-nginx --with-config-file-path=/server/php-5.4-nginx --with-mysql=/server/mysql-5.5/ --with-mysqli=/server/mysql-5.5/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-mcrypt=/usr/local/ 报错2
checking if we should use cURL for url streams... yes
checking for cURL in default path... not found
configure: error: Please reinstall the libcurl distribution -
easy.h should be in <curl-dir>/include/curl/
# 解决2:
#yum -y install curl-devel 重新编译
#./configure --prefix=/server/php-5.4-nginx --with-config-file-path=/server/php-5.4-nginx --with-mysql=/server/mysql-5.5/ --with-mysqli=/server/mysql-5.5/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-mcrypt=/usr/local/ 报错3
checking whether to enable JIS-mapped Japanese font support in GD... no
checking for fabsf... yes
checking for floorf... yes
configure: error: jpeglib.h not found 解决3:*不要丢了
# yum -y install libjpeg*
再次编译
./configure --prefix=/server/php-5.4-nginx --with-config-file-path=/server/php-5.4-nginx --with-mysql=/server/mysql-5.5/ --with-mysqli=/server/mysql-5.5/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-mcrypt=/usr/local/ 报错4:
checking for jpeg_read_header in -ljpeg... yes
If configure fails try --with-vpx-dir=<DIR>
configure: error: png.h not found.
# 解决4:*不要丢了
# yum -y install libpng*
再次编译
#./configure --prefix=/server/php-5.4-nginx --with-config-file-path=/server/php-5.4-nginx --with-mysql=/server/mysql-5.5/ --with-mysqli=/server/mysql-5.5/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-mcrypt=/usr/local/ 报错5:
configure: error: freetype.h not found. 解决5:*不要丢掉了
# yum -y install freetype* 再次编译
#./configure --prefix=/server/php-5.4-nginx --with-config-file-path=/server/php-5.4-nginx --with-mysql=/server/mysql-5.5/ --with-mysqli=/server/mysql-5.5/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-mcrypt=/usr/local/ 报错6:
checking for specified location of the MySQL UNIX socket... no
configure: error: Cannot find MySQL header files under /server-5.5/.
Note that the MySQL client library is not bundled anymore!
这个应该是指定路径错误,改下
再次编译
#./configure --prefix=/server/php-5.4-nginx --with-config-file-path=/server/php-5.4-nginx --with-mysql=/server/mysql-5.5/ --with-mysqli=/server/mysql-5.5/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-mcrypt=/usr/local/ 报错7:
configure: error: wrong mysql library version or lib not found. Check config.log for more information. 解决7:
“=/server/mysql-5.5/bin/mysql_config”删掉试试
改好以后的执行:
# ./configure --prefix=/server/php-5.4-nginx --with-config-file-path=/server/php-5.4-nginx --with-mysql=/server/mysql-5.5/ --with-mysqli --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-mcrypt=/usr/local/ 历经千辛万苦啊
这里贴上一些参数的意思
--with-iconv-dir #字符集转换 需要的扩展模块
–without-iconv 关闭 iconv 函数,种字符集间的转换
–with-freetype-dir 打开对 freetype 字体库的支持
–with-jpeg-dir 打开对 jpeg 图片的支持
–with-png-dir 打开对 png 图片的支持
–with-libxml-dir 打开 libxml2 库的支持
–disable-rpath 关闭额外的运行库文件
–enable-bcmath 打开图片大小调整,用到 zabbix 监控的时候用到了这个模块
下面 是make&& make install
# make -j 4 && make install
生成配置文件
# cp /usr/local/src/php-5.4.14/php.ini-production /server/php-5.4-nginx/php.ini 生成php-fpm配置文件
# cp /server/php-5.4-nginx/etc/php-fpm.conf.default /server/php-5.4-nginx/etc/php-fpm.conf 生成php-fpm启动脚本
# cp /usr/local/src/php-5.4.14/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# chmod +x /etc/init.d/php-fpm
# /etc/init.d/php-fpm start
Starting php-fpmdone
# netstat -anptu | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 76616/php-fpm
# 测试php
# vim /server/nginx-1.2.8/html/a.php
# cat /server/nginx-1.2.8/html/a.php
<?php
phpinfo();
?>
# 效果图如下
The End!
页:
[1]