CentOS中Nginx+Apache+MySQL+PHP+Tomcat的配置教程(支持PHP、JAVA)

先来看CentOS6.4+Apache-2.2.22+Mysql-5.1.63+PHP-5.2.17+phpmyadmin-3.4.10.2+ZendDebug环境安装

LAMP安装手记(CentOS6.4+Apache-2.2.22+Mysql-5.1.63+PHP-5.2.17+phpmyadmin-3.4.10.2+ZendDebug)

 代码如下 复制代码

rpm -e httpd

rpm -e mysql

rpm -e php

yum -y remove httpd php mysql-server mysql php-mysql 

setenforce 0

yum -y install gcc gcc-c++  make automake autoconf kernel-devel ncurses-devel libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel  pcre-devel libtool-libs freetype-devel gd zlib-devel file bison patch mlocate flex diffutils   readline-devel glibc-devel glib2-devel bzip2-devel gettext-devel libcap-devel libmcrypt-devel wget unzip 

wget -c http://archive.apache.org/dist/httpd/httpd-2.2.22.tar.gz

wget -c http://dl.mysql.cn/mysql5/5.1/mysql-5.1.63.tar.gz

wget -c http://iweb.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.4.10.2/phpMyAdmin-3.4.10.2-all-languages.tar.gz

wget -c http://us2.php.net/get/php-5.2.17.tar.gz/from/am.php.net/mirror

tar xzf httpd-2.2.22.tar.gz

tar xzf mysql-5.1.63.tar.gz

tar xzf php-5.2.17.tar.gz

tar xzf phpMyAdmin-3.4.10.2-all-languages.tar.gz

cd /tmp/httpd-2.2.22

./configure --prefix=/usr/local/apache --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared  --enable-headers=shared --enable-rewrite=shared --enable-static-support

make

make install

cp build/rpm/httpd.init /etc/init.d/httpd //使用init脚本管理httpd

chmod 755 /etc/init.d/httpd //增加执行权限

chkconfig --add httpd  //添加httpd到服务项

chkconfig  httpd on   //设置开机启动

ln -fs /usr/local/apache/ /etc/httpd

ln -fs /usr/local/apache/bin/httpd /usr/sbin/httpd

ln -fs /usr/local/apache/bin/apachectl /usr/sbin/apachectl

ln -fs /usr/local/apache/logs /var/log/httpd //设置软链接以适应init脚本

groupadd mysql

useradd -g mysql mysql

cd /tmp/mysql-5.1.63

./configure --prefix=/usr/local/mysql/ --localstatedir=/usr/local/mysql/data --without-debug --with-unix-socket-path=/tmp/mysql.sock --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --with-extra-charsets=gbk,gb2312,utf8 --with-pthread

make

make install

cp support-files/my-medium.cnf /etc/my.cnf //复制配置文件夹my.cnf

/usr/local/mysql/bin/mysql_install_db --user=mysql  //初始化数据库

chown -R root.mysql /usr/local/mysql

chown -R mysql /usr/local/mysql/data 

cp /tmp/mysql-5.1.63/support-files/mysql.server /etc/rc.d/init.d/mysqld  //init启动脚本

chown root.root /etc/rc.d/init.d/mysqld 

chmod 755 /etc/rc.d/init.d/mysqld

chkconfig --add mysqld

chkconfig  mysqld on

ln -s /usr/local/mysql/bin/mysql /usr/bin

ln -s /usr/local/mysql/bin/mysqladmin /usr/bin

service mysqld start

/usr/local/mysql/bin/mysqladmin -u root password '新密码'   //设置root密码

安装PHP

cd /tmp

wget http://superb-dca2.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

wget http://superb-dca2.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz

wget http://superb-sea2.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz

tar xzf libmcrypt-2.5.8.tar.gz

tar xzf mhash-0.9.9.9.tar.gz

tar xzf mcrypt-2.6.8.tar.gz

//安装libmcrypt

cd /tmp/libmcrypt-2.5.8

./configure --prefix=/usr

make && make install

//安装libmcrypt

cd /tmp/mhash-0.9.9.9

./configure --prefix=/usr

make && make install

//安装mcrypt

/sbin/ldconfig //搜索出可共享的动态链接库

cd /tmp/mcrypt-2.6.8

./configure

make && make install

解决可能出现的报错:

If configure fails try --with-jpeg-dir=<DIR>

configure: error: libpng.(a|so) not found.

解决:

yum install libpng libpng-devel

ln -s /usr/lib64/libjpeg.so /usr/lib/

ln -s /usr/lib64/libpng.so /usr/lib/

解决可能出现的libiconv报错

cd /tmp

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

tar xzf libiconv-1.14.tar.gz

cd libiconv-1.14

./configure --prefix=/usr/local/libiconv

make && make install

cd /tmp/php-5.2.17

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --enable-bcmath --with-bz2 --with-curl --enable-ftp --with-gd --enable-gd-native-ttf --with-gettext --with-mhash --enable-mbstring --with-mcrypt --enable-soap --enable-zip --with-iconv=/usr/local/libiconv --with-mysql=/usr/local/mysql --without-pear

make

make install

cp php.ini-dist /usr/local/php/etc/php.ini //复制配置文件php.ini

修改apache配置文件:

在/etc/httpd/conf/httpd.conf文件中加入php文件类型解析:

vi /etc/httpd/conf/httpd.conf

添加

AddType application/x-httpd-php .php .phtml .inc

AddType application/x-httpd-php-source .phps

找到:

ServerName www.example.com:80

修改为:

ServerName localhost:80

service httpd restart &nbsp;//重启httpd

安装ZendOptimizer-3.3.9

64位:http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz

32位:http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz

cd /tmp

wget&nbsp; http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz

tar xzf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz

cd /tmp/ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp/

mkdir -p /usr/local/Zend/lib/

cp ZendOptimizer.so /usr/local/Zend/lib

加载zendoptimizer,建立/etc/php.d/zend.ini文件,加入如下代码加载:

[zend]

zend_optimizer.optimization_level=15

zend_extension=/usr/local/Zend/lib/ZendOptimizer.so

service httpd restart

安装eAccelerator-0.9.6.1

cd /tmp

wget http://jaist.dl.sourceforge.net/project/eaccelerator/eaccelerator/eAccelerator%200.9.6.1/eaccelerator-0.9.6.1.zip

unzip eaccelerator-0.9.6.1.zip

cd eaccelerator-0.9.6.1

export PHP_PREFIX="/usr/local/php"

$PHP_PREFIX/bin/phpize

./configure -enable-eaccelerator=shared -with-php-config=$PHP_PREFIX/bin/php-config

make && make install

cd /tmp

mkdir eaccelerator

chmod 0777 eaccelerator

php zenddebugger 加载失败

用php -v 查看信息

[root@E modules]# php -v

Failed loading /usr/lib64/php/modules/ZendDebugger.so: libssl.so.0.9.8: cannot open shared object file: No such file or directory

Failed loading /usr/local/Zend/lib/ZendOptimizer.so: /usr/local/Zend/lib/ZendOptimizer.so: undefined symbol: zend_throw_exception_internal

Failed loading /usr/lib64/php/modules/ZendDebugger.so: libssl.so.0.9.8: cannot open shared object file: No such file or directory

Warning: Directive 'register_long_arrays' is deprecated in PHP 5.3 and greater in Unknown on line 0

Warning: Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater in Unknown on line 0

PHP 5.3.3 (cli) (built: Nov 22 2013 10:59:29)

Copyright (c) 1997-2010 The PHP Group

Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

原因:因为最新的linux发行版本&nbsp;libssl&nbsp;和&nbsp;libcrypto&nbsp;已升级到1.0.0

解决:只要创建相应的软链接即可

[root@E modules]# ll /usr/lib64/libssl*

-rwxr-xr-x. 1 root root 221568 2?? 23 2013 /usr/lib64/libssl3.so

lrwxrwxrwx. 1 root root 16 11??26 19:31 /usr/lib64/libssl.so -> libssl.so.1.0.1e

lrwxrwxrwx. 1 root root 16 11??26 19:31 /usr/lib64/libssl.so.10 -> libssl.so.1.0.1e

-rwxr-xr-x. 1 root root 436984 12?? 4 2013 /usr/lib64/libssl.so.1.0.1e

建立软连接:

ln -s /usr/lib64/libssl.so.1.0.1e /usr/lib64/libssl.so.0.9.8

[root@E modules]# ll /usr/lib64/libcrypto*

lrwxrwxrwx. 1 root root 19 11??26 19:31 /usr/lib64/libcrypto.so -> libcrypto.so.1.0.1e

lrwxrwxrwx. 1 root root 19 11??26 19:31 /usr/lib64/libcrypto.so.10 -> libcrypto.so.1.0.1e

-rwxr-xr-x. 1 root root 1946880 12?? 4 2013 /usr/lib64/libcrypto.so.1.0.1e

建立软连接:

ln -s /usr/lib64/libcrypto.so.1.0.1e /usr/lib64/libcrypto.so.0.9.8

接着来看如何在LNAMP环境下安装JDK+Tomcat6使同一台服务器同时支持PHP和JAVA语言。
服务器系统和各软件版本如下所示:

 代码如下 复制代码

[root@E ~]# uname -a
Linux E.CentOS6.4 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@E ~]# /www/wdlinux/nginx/sbin/nginx -v
nginx version: nginx/1.2.9
[root@E ~]# /www/wdlinux/httpd-2.2.24/bin/httpd -v
Server version: Apache/2.2.24 (Unix)
Server built: Oct 30 2014 00:17:07
[root@E ~]# rpm -qa |grep mysql
mysql-libs-5.1.66-2.el6_3.x86_64
[root@E ~]# /www/wdlinux/php/bin/php -v
Cannot load Zend Extension Manager - it was built with configuration 1.2.0, whereas running engine is API220090626,NTS
PHP 5.3.27 (cli) (built: Oct 30 2014 00:30:02)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies

开始安装jdk:

列出yum库可用的jdk安装包

 代码如下 复制代码

[root@E ~]# yum -y list java*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* extras: mirror.bit.edu.cn
* rpmforge: mirrors.neusoft.edu.cn
* updates: mirrors.neusoft.edu.cn
base | 3.7 kB 00:00
extras | 3.3 kB 00:00
rpmforge | 1.9 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 171 kB 00:00
Available Packages
java-1.5.0-gcj.x86_64 1.5.0.0-29.1.el6 base
java-1.5.0-gcj-devel.x86_64 1.5.0.0-29.1.el6 base
java-1.5.0-gcj-javadoc.x86_64 1.5.0.0-29.1.el6 base
java-1.5.0-gcj-src.x86_64 1.5.0.0-29.1.el6 base
java-1.6.0-openjdk.x86_64 1:1.6.0.33-1.13.5.0.el6_6 updates
java-1.6.0-openjdk-demo.x86_64 1:1.6.0.33-1.13.5.0.el6_6 updates
java-1.6.0-openjdk-devel.x86_64 1:1.6.0.33-1.13.5.0.el6_6 updates
java-1.6.0-openjdk-javadoc.x86_64 1:1.6.0.33-1.13.5.0.el6_6 updates
java-1.6.0-openjdk-src.x86_64 1:1.6.0.33-1.13.5.0.el6_6 updates
java-1.7.0-openjdk.x86_64 1:1.7.0.71-2.5.3.1.el6 updates
java-1.7.0-openjdk-demo.x86_64 1:1.7.0.71-2.5.3.1.el6 updates
java-1.7.0-openjdk-devel.x86_64 1:1.7.0.71-2.5.3.1.el6 updates
java-1.7.0-openjdk-javadoc.noarch 1:1.7.0.71-2.5.3.1.el6 updates
java-1.7.0-openjdk-src.x86_64 1:1.7.0.71-2.5.3.1.el6 updates
java-1.8.0-openjdk.x86_64 1.8.0.25-1.b17.el6 updates
java-1.8.0-openjdk-demo.x86_64 1.8.0.25-1.b17.el6 updates
java-1.8.0-openjdk-devel.x86_64 1.8.0.25-1.b17.el6 updates
java-1.8.0-openjdk-headless.x86_64 1.8.0.25-1.b17.el6 updates
java-1.8.0-openjdk-javadoc.noarch 1.8.0.25-1.b17.el6 updates
java-1.8.0-openjdk-src.x86_64 1.8.0.25-1.b17.el6 updates
java_cup.x86_64 1:0.10k-5.el6 base
java_cup-javadoc.x86_64 1:0.10k-5.el6 base
java_cup-manual.x86_64 1:0.10k-5.el6 base
javacc.x86_64 4.1-0.5.el6 base
javacc-demo.x86_64 4.1-0.5.el6 base
javacc-manual.x86_64 4.1-0.5.el6 base
javassist.noarch 3.9.0-6.el6 base
javassist-javadoc.noarch 3.9.0-6.el6 base

 

选择jdk1.6安装

 代码如下 复制代码

[root@E ~]# yum -y install java-1.6.0-openjdk*

其它版本请自己修改对应的版本号安装
检测是否安装成功

 代码如下 复制代码

[root@E ~]# java -version
java version "1.6.0_33"
OpenJDK Runtime Environment (IcedTea6 1.13.5) (rhel-1.13.5.0.el6_6-x86_64)
OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)

安装tomcat6

[root@E ~]# yum install tomcat6 tomcat6-webapps tomcat6-admin-webapps
安装成功 启动
[root@E ~]# service tomcat6 start
其它命令:service tomcat6 {start|stop|restart|condrestart|try-restart|reload|force-reload|status|version}
启动成功,访问测试:http://ip:8080

 
配置nginx和tomcat,使其不加端口号,直接通过域名也能访问
首先增加解析,使域名指向到主机IP,本地可以直接改host实现

解析正常
不加8080端口访问

添加8080端口访问

接下来修改nginx和tomcat的配置使其不加端口号也能访问到tomcat的webservice

 代码如下 复制代码
[root@E ~]# cd /www/wdlinux/nginx/conf/vhost/
[root@E ~]# vi 111cn.net.conf
添加如下内容
server {
listen 80;
server_name www.111cn.net 111cn.net;
#root /www/web/master_myweb_com/public_html;
index index.html index.jsp index.htm;
error_page 400 /errpage/400.html;
error_page 403 /errpage/403.html;
error_page 404 /errpage/404.html;
error_page 405 /errpage/405.html;
location ~ .jsp$ {
proxy_pass http://127.0.0.1:8080;
include naproxy.conf;
}
location / {
try_files $uri @tomcat;
}
location @tomcat {
proxy_pass http://127.0.0.1:8080;
include naproxy.conf;
    }
    access_log /www/web_logs/myweb_com_access.log wwwlogs;
    error_log /www/web_logs/myweb_com_error.log;
}
重新加载nginx配置文件或重启nginx
[root@E vhost]# service nginxd reload
nginx: the configuration file /www/wdlinux/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /www/wdlinux/nginx/conf/nginx.conf test is successful

不加端口号访问测试:
9
至此nginx已经成功将来自111cn.net域名的请求代理到8080端口
如果需要配置多域名的话,还需要修改tomcat虚拟主机配置文件
默认配置文件路径:/etc/tomcat6/
默认项目路径:/var/lib/tomcat6/webapps/
tomcat默认指向/var/lib/tomcat6/webapps/ROOT目录
创建新项目目录,这里直接复制ROOT项目,进行修改

 代码如下 复制代码
[root@E webapps]# pwd
/var/lib/tomcat6/webapps
[root@E webapps]# chown -R root 111cn.net
修改权限,使新项目权限和默认项目权限一致
[root@E webapps]# chgrp -R tomcat 111cn.net
[root@E webapps]# ll
总用量 24
drwxrwxr-x 5 root tomcat 4096 10月 30 22:06 examples
drwxrwxr-x 5 root tomcat 4096 10月 30 22:06 host-manager
drwxrwxr-x 5 root tomcat 4096 10月 30 22:06 manager
drwxr-xr-x 3 root tomcat 4096 10月 30 22:48 111cn.net
drwxrwxr-x 3 root tomcat 4096 10月 30 22:06 ROOT
drwxrwxr-x 5 root tomcat 4096 10月 30 22:06 sample
[root@E 111cn.net]# cd 111cn.net/
[root@E 111cn.net]# rm -f index.html
[root@E 111cn.net]# vi index.jsp

写入:WebService is Tomcat
不要忘记删除ROOT项目或者对它重命,否则新项目不生效
[root@E webapps]# mv ROOT/ ROOT.BAK

修改tomcat虚拟主机配置

[root@E 111cn.net]# vi /etc/tomcat6/server.xml
在最下面<Host></Host>标签后面添加如下内容

 代码如下 复制代码
<!--111cn.net host config-->
<Host name="www.111cn.net" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/" reloadable="true" docBase="111cn.net"/>
<Alias>111cn.net</Alias>
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
-->
</Host>
重启tomcat,测试http://111cn.net
[root@E 111cn.net]# service tomcat6 restart
11
succes
时间: 2024-09-20 09:27:36

CentOS中Nginx+Apache+MySQL+PHP+Tomcat的配置教程(支持PHP、JAVA)的相关文章

CentOS下nginx+php-fpm+mysql主机分离环境实例教程

实验系统:CentOS 6.6_x86_64 实验前提:大部分软件使用编译安装,请提前准备好编译环境,防火墙和selinux都关闭 实验软件:nginx-1.9.3 mariadb-10.0.20 php-5.6.11 memcache-2.2.7 xcache-3.2.0 实验拓扑: 一.安装nginx 1.解决依赖关系: 需要专门安装pcre-devel包: yum -y install pcre-devel 2.添加nginx用户: useradd -r nginx 3.解压并编译安装ng

Centos中nginx+rsync+inotify实现负载均衡配置

实验环境 前端nginx:ip 192.168.6.242,对后端的wordpress网站做反向代理实现负载均衡 后端nginx:ip 192.168.6.36,192.168.6.205都部署wordpress,并使用相同的数据库 1.安装rsync和inotify 在后端的两个wordpress上配置rsync+inotify,两服务器都开启rsync服务,并且通过inotify分别向对方同步数据 下面配置192.168.6.205这台服务器 vim /etc/rsyncd.conf  ui

CentOS 7 x64下Apache+MySQL(Mariadb)+PHP56的安装教程详解_Linux

每次搭建新服务器,都要来来回回把这些包再装一下,来来回回搞了不下20遍了吧,原来都是凭经验,配置过程中重复入坑是难免的,故写此文做个备忘.虽然有像xampp这样的集成包,但是在生产环境的Linux发行版上,还是通过包管理工具安装会放心.这次新买的服务器是CentOS 7(7.2)系统,相关配置也都以此版本为主,为方便操作,直接使用root用户配置. CentOS 7的源比较旧,自带的PHP是PHP 5.4,我们想要的是PHP 5.6,这就需要执行以下命令添加额外的remi源. rpm -ivh

mysql免安装版配置教程

本文实例为大家分享了mysql免安装版配置教程,供大家参考,具体内容如下 1.下载MySQL免安装版压缩包,并减压到自定义目录,比如:D:\program0\mysql (以下以该目录为例) 2.修改my.ini文件(可能是my-default.ini,手动修改为my.ini); 需要配置的项: basedir =D:\program0\mysql datadir =D:\program0\mysql\data #如果自定义该目录,必须把该目录下的所有文件移动到新的自定义的目录下 port =

LNMP 状态管理命令说明及Nginx、MySQL/MariaDB、PHP升级教程

状态管理命令分 LNmp状态管理命令 和 LNmpA状态管理命令,LNMPA代表的是Linux下Nginx.MySQL.PHP.Apache这种网站服务器架构,是结合LAMP与LNMP各自的优点而产生的新的网站服务器架构. LNmp状态管理命令: LNmp状态管理: /root/lnmp {start|stop|reload|restart|kill|status}Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart}MySQL状态管理:/

Linux下Apache+mysql+PHP运行环境搭建教程

 今天因为工具需要需要配置一个web环境,由于初次接触在linux内核系统中配置Apache+mysql+PHP环境折腾了许久,下面整理了一篇安装教程与大家一起交流一下吧. PHP之服务器环境搭建安装软件准备 1. Apache224.tar.gz 2. php-5.2.9.tar.gz 3. mysql-5.1.54.tar.gz PHP和各个组件包 libxml2-2.6.30.tar.gz xml c语言版的解析器 libmcrypt-2.5.8.tar.gz 加密算法扩展库 zlib-1

Nginx和Apache共用80端口的配置教程

一个典型的 Nginx + Apache 应用方案可以是Nginx 占用 80 端口,过滤静态请求,然后动态请求即 Proxy 到 Apache 的 8080 端口.Proxy 反向代理的好处是访问的时候,始终就是 80 端口,来访者不会觉察到有任何的区别. 但有的应用确非常"聪明",识别到 Apache 所位于的端口是 8080 ,就会把相关的超链接都一并加上 :8080 的后续.这么就死定了,还能有正常访问麽?! 有个方法可以解决这事,就是把 apache 也运行在80端口上.同一

在同一系统中同时启动多个tomcat以及配置和修改

如果不修改tomcat的任何配置信息,在同一电脑中同时启动多个tomcat,显然是不可能的,会有端口占用冲突.因此,想同时启动多个tomcat,必须修改配置文件的一些端口号. 从网上看了一些,感觉太复杂,于是开始自己实验,并且整理记录如下(以tomcat6.0.37版本为例): 修改 ${TOMCAT_HOME}/conf/server.xml 文件如下内容: 1.修改 shutdown 端口,将"8005"改为其他端口(默认为8005端口): <Server port=&quo

centos中CDH5.2 Cloudera Manager installer安装配置详解

一.机器准备 1.3台主机名:server202 server203 server204 另外server201用来搭建本地yum的repos,不参与集群. 2.配置server202的ssh免密码登录到其他机器(包括自己) 3.3个机器节点的/etc/hosts加入 192.168.2.201 archive.cloudera.com 192.168.2.202 server202 192.168.2.203 server203 192.168.2.204 server204 4.其他一些相关