rhel6上搭建lnmp架构以及遇到的一些错误并排除方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rhel6上搭建lnmp架构以及遇到的一些错误并排除方法相关的知识,希望对你有一定的参考价值。
先装好rhel6.5 配置好实验环境
关掉NetworkManager,并停止掉开机自启动
[[email protected] ~]# service NetworkManager stop [[email protected] ~]# chkconfig -- list NetworkManager [[email protected] ~]# chkconfig NetworkManager off
关掉iptables
[[email protected] ~]# iptables -F [[email protected] ~]# service iptables save iptables£o·àe1ò±£′μ /etc/sysconfig/iptables£o [è·¨] [[email protected] ~]# chkconfig iptables off
关掉selinux
[[email protected] ~]# getenforce Enforcing [[email protected] ~]# setenforce usage: setenforce [ Enforcing | Permissive | 1 | 0 ] [[email protected] ~]# setenforce 0 [[email protected] ~]# [[email protected] ~]# 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
修改主机名映射,可以不改,但是为了方便还是改下吧
[[email protected] ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 [[email protected] ~]# echo "192.168.20.253 duwensql.cn mysql" >> /etc/hosts [[email protected] ~]# 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 [[email protected] ~]#
修改主机名,就是编辑下面的这个档案,这里只贴上修改后的内容
[[email protected] ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=duwensql.cn GATEWAY=192.168.20.2 NTPSERVERARGS=iburst [[email protected] ~]#
配置本地yum源
[[email protected] ~]# [[email protected] ~]# mount /dev/sr0 /mnt/ mount: block device /dev/sr0 is write-protected, mounting read-only [[email protected] ~]# df -h | tail -1 /dev/sr0 3.6G 3.6G 0 100% /mnt [[email protected] ~]# echo "/dev/sr0 /mnt/ iso9660 defaults 0 0" >> /etc/fstab [[email protected] ~]# rm -rf /etc/yum.repos.d/* [[email protected] ~]# cat > /etc/yum.repos.d/rhel6.repo <<EOF > [rhel6-source] > name=rhel6-source > baseurl=file:///mnt > enabled=1 > gpgcheck=0 > EOF [[email protected] ~]# 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 [[email protected] ~]# yum list
检测依赖环境,包括gcc,gcc-c++,autoconf,automake,zlib ,zlib-devel, openssl ,openssl-devel ,pcre-devel,
[[email protected] ~]# [[email protected] ~]# yum install -y gcc gcc-c++ autoconf automake [[email protected] ~]# yum install -y zlib zlib-devel openssl openssl-devel pcre-devel
为了方便从xshell上传软件包,这里安装一个工具
[[email protected] ~]# 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 ########################################### [100%] ########################################### [100%] [[email protected] ~]#
//上传软件包:nginx-1.6.0.tar.gz mysql-5.5.30.tar.gz php-5.4.14.tar.bz2
[[email protected] ~]# rz z waiting to receive.**B0100000023be50 [[email protected] ~]# ls anaconda-ks.cfg install.log.syslog nginx-1.6.0.tar.gz 公共的 视频 文档 音乐 install.log mysql-5.5.30.tar.gz php-5.4.14.tar.bz2 模板 图片 下载 桌面
正式开始安装MySQL了
解压到指定目录/usr/local/src/
[[email protected] ~]# [[email protected] ~]# tar -zxf mysql-5.5.30.tar.gz -C /usr/local/src/
建一个mysql用户,这里把这个用户显示出来
[[email protected] ~]# tail -1 /etc/passwd mysql:x:500:500::/home/mysql:/sbin/nologin [[email protected] ~]#
//安装cmake
[[email protected] ~]# yum install -y cmake
建立mysql的目录
[[email protected] /]# mkdir /server [[email protected] ~]# cd /usr/local/src/mysql-5.5.30/ [[email protected] 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安装一下
[[email protected] ncurses-5.9]# yum -y install ncurses-devel
//装了那个ncurses依赖,还是报错,就只好把这个CMakeCache.txt找出来干掉了
[[email protected] mysql-5.5.30]# find / -name CMakeCache.txt /usr/local/src/mysql-5.5.30/CMakeCache.txt [[email protected] mysql-5.5.30]# rm -rf /usr/local/src/mysql-5.5.30/CMakeCache.txt
//OK,现在重新cmake
//呐开心不,没有报错了呢!!!
现在make &&make install,过程就不写了
配置运行环境
[[email protected] mysql-5.5.30]# cd /server/ [[email protected] server]# ls mysql-5.5 [[email protected] server]# chown -R mysql:mysql /server/mysql-5.5/
复制mysql配置文件
[[email protected] server]# cd /etc/ [[email protected] etc]# ll my.cnf -rw-r--r--. 1 root root 251 8月 9 2013 my.cnf [[email protected] etc]# mv ./my.cnf ./my.cnf.back [[email protected] etc]# cp /usr/local/src/mysql-5.5.30/support-files/my-large.cnf /etc/my.cnf [[email protected] etc]#
这个步骤是加入开机启动项
[[email protected] init.d]# cp /usr/local/src/mysql-5.5.30/support-files/mysql.server /etc/init.d/mysqld5.5 [[email protected] init.d]# chmod +x ./mysqld5.5 [[email protected] init.d]# pwd /etc/init.d [[email protected] init.d]#
//这里要改下,大概在第70行
[[email protected] init.d]# vim /etc/init.d/mysqld5.5 [[email protected] init.d]# 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 [[email protected] init.d]#
//加入开机启动项
[[email protected] init.d]# chkconfig mysqld5.5 on [[email protected] init.d]# chkconfig --list mysqld5.5 mysqld5.5 0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭 [[email protected] init.d]#
初始化mysql
[[email protected] init.d]# cd /usr/local/src/mysql-5.5.30/scripts/ [[email protected] scripts]# chmod +x mysql_install_db [[email protected] scripts]# ./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! [[email protected] scripts]#
开启mysql
[[email protected] scripts]# /etc/init.d/mysqld5.5 start Starting MySQL... [确定] [[email protected] scripts]#
测试MySQL
//我这里最开始在家目录输入mysql显示没有命令,是因为没有加入环境变量的缘故啦,这里就不写出来了,直接到绝对路径去测试
[email protected] mysql-test]# cd /server [[email protected] server]# ls mysql-5.5 [[email protected] server]# cd mysql-5.5/ [[email protected] mysql-5.5]# ls bin COPYING data docs include INSTALL-BINARY lib man mysql-test README scripts share sql-bench support-files [[email protected] mysql-5.5]# cd bin/ [[email protected] 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 退出
给他加个环境变量吧
[[email protected] ~]# echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [[email protected] ~]# PATH="$PATH":/server/mysql-5.5/bin/
设置mysql的root账户密码,并测试登陆
[[email protected] ~]# mysqladmin -uroot password ‘123456‘ [[email protected] ~]# 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吧
解压
[[email protected] ~]# tar -zxf nginx-1.6.0.tar.gz
编译
[[email protected] nginx-1.6.0]# ./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
[[email protected] nginx-1.6.0]# make -j 4 && make install
开始配置
[[email protected] nginx-1.2.8]# pwd /server/nginx-1.2.8 [[email protected] 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; }
大概的位置如下图
启动服务
[[email protected] nginx-1.2.8]# /server/nginx-1.2.8/sbin/nginx
把服务加入开机启动
[[email protected] nginx-1.2.8]# echo ‘/server/nginx-1.2.8/sbin/nginx & ‘ >> /etc/rc.local [[email protected] nginx-1.2.8]#
测试下
测试配置文件和重新加载配置文件
[[email protected] nginx-1.2.8]# /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 [[email protected] nginx-1.2.8]# /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库
[[email protected] ~]# tar -zxf libmcrypt-2.5.8.tar.gz [[email protected] ~]# cd libmcrypt-2.5.8 [[email protected] libmcrypt-2.5.8]# ./configure --prefix=/usr/local/ [[email protected] libmcrypt-2.5.8]# echo $? 0 [[email protected] libmcrypt-2.5.8]# make -j 4 && make install
加个环境
[[email protected] libmcrypt-2.5.8]# yum -y install php-pear
解压以及编译
//在这一步出了好多好多错误,始料不及啊,本文把错误和解决贴上,如果还是不明白的话可以直接搜索错误,这里就不写了
[[email protected] ~]# tar jxf php-5.4.14.tar.bz2 -C /usr/local/src/ [[email protected] ~]# cd /usr/local/src/php-5.4.14/ [[email protected] 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. [[email protected] php-5.4.14]#
解决1
[[email protected] php-5.4.14]# yum -y install libxml2*
重新编译
[[email protected] php-5.4.14]# ./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/ [[email protected] php-5.4.14]#
解决2:
[[email protected] php-5.4.14]# yum -y install curl-devel
重新编译
[[email protected] php-5.4.14]#./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:*不要丢了
[[email protected] php-5.4.14]# yum -y install libjpeg*
再次编译
[[email protected] php-5.4.14]./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. [[email protected] php-5.4.14]#
解决4:*不要丢了
[[email protected] php-5.4.14]# yum -y install libpng*
再次编译
[[email protected] php-5.4.14]#./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:*不要丢掉了
[[email protected] php-5.4.14]# yum -y install freetype*
再次编译
[[email protected] php-5.4.14]#./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!
这个应该是指定路径错误,改下
再次编译
[[email protected] php-5.4.14]#./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”删掉试试
改好以后的执行:
[[email protected] php-5.4.14]# ./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
[[email protected] php-5.4.14]# make -j 4 && make install
生成配置文件
[[email protected] ~]# cp /usr/local/src/php-5.4.14/php.ini-production /server/php-5.4-nginx/php.ini
生成php-fpm配置文件
[[email protected] ~]# cp /server/php-5.4-nginx/etc/php-fpm.conf.default /server/php-5.4-nginx/etc/php-fpm.conf
生成php-fpm启动脚本
[[email protected] ~]# cp /usr/local/src/php-5.4.14/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [[email protected] ~]# chmod +x /etc/init.d/php-fpm [[email protected] ~]# /etc/init.d/php-fpm start Starting php-fpm done [[email protected] ~]# netstat -anptu | grep 9000 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 76616/php-fpm [[email protected] ~]#
测试php
[[email protected] ~]# vim /server/nginx-1.2.8/html/a.php [[email protected] ~]# cat /server/nginx-1.2.8/html/a.php <?php phpinfo(); ?> [[email protected] ~]#
效果图如下
The End!
本文出自 “duwers” 博客,请务必保留此出处http://duwers.blog.51cto.com/7376225/1793560
以上是关于rhel6上搭建lnmp架构以及遇到的一些错误并排除方法的主要内容,如果未能解决你的问题,请参考以下文章
rhel6.5搭建mantis时报错“INTERNAL APPLICATION ERROR”