CentOS下搭建测试WEB平台
LAMP
MYSQL
下载免编译的软件包
cd /usr/local/src
wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.73-linux-x86_64-glibc23.tar.gz
解压
tar xvf mysql-5.1.73-linux-x86_64-glibc23.tar.gz
挪动到指定目录
mv mysql-5.1.73-linux-x86_64-glibc23 /usr/local/mysql
建立mysql用户
useradd -s /sbin/nologin mysql
创建datadir,数据文件会放在里面
mkdir -p /data/mysql
更改权限
chown -R mysql:mysql /data/mysql/
定义安装db脚本
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/
拷贝主配置文件
cp support-files/my-large.cnf /etc/my.cnf
拷贝启动脚本文件
cp support-files/mysql.server /etc/init.d/mysqld
更改权限
chmod 755 /etc/init.d/mysqld
编辑启动脚本文件
vim /etc/init.d/mysqld
datadir=/data/mysql
设定开机启动
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start
确认是否启动
ps aux | grep mysqld
Apache编译安装
下载apache包
cd /usr/local/src
wget http://www.lishiming.net/data/attachment/forum/httpd-2.2.24.tar.bz2
tar jvxf httpd-2.2.24.tar.bz2
cd httpd-2.2.24
安装依赖包
yum install -y pcre pcre-devel apr apr-devel zlib-devel gcc
配置
./configure --prefix=/usr/local/apache2 --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --with-pcre
编译
make
安装
make install
检查上条命令是否正常执行
echo $?
Apache的MPM工作模式
/usr/local/apache2/bin/apachectl –M
mpm开头的是apache的工作模式。shared表示动态共享,static表示静态共享。
Php编译安装-顺序在最后
下载Php包
cd /usr/local/src/
wget http://cn2.php.net/distributions/php-5.4.44.tar.gz
tar xvf php-5.4.44.tar.gz
安装依赖包
yum install -y libxml2-devel openssl openssl-devel bzip2 bzip2-devel libpng libpng-devel freetype freetype-devel epel-release libmcrypt-devel
yum -y install libjpeg-devel
yum install -y epel-release
yum install -y libmcrypt-devel
配置
cd php-5.4.44
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql/ --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --disable-ipv6
echo $?
编译
make
编译文件测试
make test
安装
make install
拷贝php配置文件
cp php.ini-production /usr/local/php/etc/php.ini
修改apache配置文件
vim /usr/local/apache2/conf/httpd.conf
定义Server名字
ServerName localhost:80
如果不修改访问会显示403
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
加上对应类型支持Php脚本解析
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
增加针对php的索引
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
确认php配置文件是否正常
/usr/local/apache2/bin/apachectl -t
启动服务
/usr/local/apache2/bin/apachectl start
查看进程
ps aux | grep httpd
测试Php解析
写入测试php网页
vim /usr/local/apache2/htdocs/1.php
<?php
echo "php works";
?>
本机测试
curl localhost/1.php
安装Discuz!
下载discuz!
mkdir /data/www
cd /data/www/
wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip
unzip Discuz_X3.2_SC_GBK.zip
mv upload/* .
配置一地个虚拟主机
vim /usr/local/apache2/conf/httpd.conf
# Virtual hosts
去掉前面的#号
Include conf/extra/httpd-vhosts.conf
注释掉前面其它的VirtualHost,加入如下配置
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/www"
ServerName www.123.com
</VirtualHost>
检查apache配置文件是否正确
/usr/local/apache2/bin/apachectl -t
重启apache服务
/usr/local/apache2/bin/apachectl restart
配置mysql,为Discuz!增加一个账户
/usr/local/mysql/bin/mysql -u root
创建一个库
mysql> create database discuz;
Query OK, 1 row affected (0.01 sec)
赋予权限给新用户
mysql> grant all on discuz.* to 'gyt'@'localhost' identified by 'root1234';
Query OK, 0 rows affected (0.07 sec)
默认运行apache的账号
vim /usr/local/apache2/conf/httpd.conf
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon
Group daemon
编辑windows测试客户端host文件,增加如下参数:
C:\Windows\System32\drivers\etc
点击,我同意
需要更改权限。
修改目录权限
chown -R daemon:daemon data/ uc_server/data uc_client/data config
选择全新安装,点击下一步。
输入数据库用户账号/密码。设置admin账号密码。
记好Discuz!论坛管理员账号/密码。
Apache用户认证
刚装好的Discuz!论坛,有一个管理后台admin,本身有密码,但是为了更加安全,再设置一层用户认证。
限制了某些文件必须输入账号/密码才能访问。
Direcotry指定对哪个目录进行验证,AuthName自定义,AuthUserFile指定用户密码文件在哪里。
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/www"
ServerName www.123.com
<Directory /data/www/admin.php>
AllowOverride AuthConfig
AuthName "alksdjflkasjdf"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</Directory>
</VirtualHost>
创建进行验证的用户
/usr/local/apache2/bin/htpasswd -cm /data/.htpasswd admin
检查apache配置是否正确
/usr/local/apache2/bin/apachectl -t
重启,graceful相当于reload
/usr/local/apache2/bin/apachectl graceful
查看加密的密码
cat /data/.htpasswd
[root@localhost www]# cat /data/.htpasswd
gyt:$apr1$/4qKQ0fY$3rCU7oE.wWlwCLv9MXYH3.
[root@localhost www]#
默认虚拟主机
修改默认第一个虚机主机。
有个特点就是凡是解析到这台机器的域名,不管是什么域名,只要配置文件中没有配置,都会访问到这个主机上来。
所以应该禁止掉。
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/tmp/tmp"
ServerName www.55tmp.com
<Directory /tmp/tmp>
Order allow,deny
Deny from all
</Directory>
# ServerAlias www.dummy-host.example.com
# ErrorLog "logs/dummy-host.example.com-error_log"
# CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
mkdir /tmp/tmp
/usr/local/apache2/bin/apachectl graceful
php扩展模块如何安装(Memcache)
下载memcache包
cd /usr/local/src/
wget http://www.lishiming.net/data/attachment/forum/memcache-2.2.3.tgz
tar zxvf memcache-2.2.3.tgz
cd memcache-2.2.3
安装依赖包
yum install -y m4 autoconf
用php生成configure文件
/usr/local/php/bin/phpize
配置
./configure --with-php-config=/usr/local/php/bin/php-config
编译
make
安装
make install
创建extension 目录
mkdir /usr/local/php/ext
拷贝memcache模块至ext目录。
cp modules/memcache.so /usr/local/php/ext/
编辑php配置文件,配置如下2行参数
vim /usr/local/php/etc/php.ini
extension_dir = "/usr/local/php/ext"
extension = memcache.so
查看extension_dir方法
/usr/local/php/bin/php -i | grep extension_dir
检测和查看具体的模块,如果有memcache说明配置成功
/usr/local/php/bin/php -m
LNMP
本次LNMP环境需要的依赖包,Mysql部分参考LAMP 章节Mysql部分安装即可。
yum install -y libcurl-devel
yum install -y libtool-ltdl-devel
yum install -y libxml2-devel openssl openssl-devel bzip2 bzip2-devel libpng libpng-devel freetype freetype-devel epel-release libmcrypt-devel
yum -y install libjpeg-devel
yum install -y epel-release
yum install -y libmcrypt-devel
yum install gcc
yum install libcurl
php编译安装
下载PHP源码包
cd /usr/local/src
wget http://au1.php.net/distributions/php-5.4.44.tar.bz2
解压源码包,创建账号,用于运行php-fpm服务,在LNMP环境张,php是以一个服务来提供服务的。
tar jxf php-5.4.44.tar.bz2
useradd -s /sbin/nologin php-fpm
cd php-5.4.44
配置编译选项
./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=/tmp/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-multibbyte --disable-ipv6 --with-pear --with-curl --with-openssl
编译php
make
安装php
make install
拷贝配置文件
cp php.ini-production /usr/local/php/etc/php.ini
备份php-fpm默认文件
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf.default.bak
更改为conf文件
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
修改配置文件
vim /usr/local/php/etc/php-fpm.conf
[global]
; Pid file
; Note: the default prefix is /usr/local/php/var
; Default Value: none
pid = /usr/local/php/var/run/php-fpm.pid
; Error log file
; If it's set to "syslog", log is sent to syslogd instead of being written
; in a local file.
; Note: the default prefix is /usr/local/php/var
; Default Value: log/php-fpm.log
error_log = /usr/local/php/var/log/php-fpm.log
[www]
user = php-fpm
group = php-fpm
listen = /tmp/php-fcgi.sock
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
检查配置是否正确
/usr/local/php/sbin/php-fpm –t
拷贝一个启动脚本到/etc/init.d下
cp /usr/local/src/php-5.4.44/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
更改脚本权限
chmod 755 /etc/init.d/php-fpm
service php-fpm start
开机启动
chkconfig php-fpm on
检测是否启动
ps aux | grep php-fpm
更改权限
chmod 777 /tmp/php-fcgi.sock
更改属主属组
chown php-fpm:php-fpm /tmp/php-fcgi.sock
Nginx编译安装
下载、解压Nginx
cd /usr/local/src/
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar zxvf nginx-1.8.0.tar.gz
配置编译选项
cd nginx-1.8.0
yum -y install pcre-devel openssl openssl-devel
./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre
编译
make
安装
make install
启动Nginx
/usr/local/nginx/sbin/nginx
通过进程确认
ps aux | grep nginx
配置Nginx配置文件,使其能够支持php
vim /usr/local/nginx/conf/nginx.conf
找到
location = /50x.html {
root html;
}
后面修改如下配置
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass unix:/tmp/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
重新加载
/usr/local/nginx/sbin/nginx -s reload
创建测试文件
vim /usr/local/nginx/html/2.php
<?php
echo "php works";
?>
测试
curl localhost/2.php
出现这个,代表环境Ok。
php works
Tomcat
安装
查看jdk版本
java -version
确认java命令信息
whereis java
记录java home
vim /etc/java/java.conf
JVM_ROOT=/usr/lib/jvm
#JAVA_HOME=$JVM_ROOT/jre
下载tomcat
cd /usr/local/src
wget http://apache.fayea.com/tomcat/tomcat-7/v7.0.70/bin/apache-tomcat-7.0.70.tar.gz
解压
tar zxvf apache-tomcat-7.0.70.tar.gz
移动程序目录
mv apache-tomcat-7.0.70 /usr/local/tomcat
配置启动脚本
cp -pv /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
编辑脚本
vim /etc/init.d/tomcat
增加2个参数
JAVA_HOME=/usr/lib/jvm/jre
CATALINA_HOME=/usr/local/tomcat
启动
/etc/init.d/tomcat start
访问测试
配置
编辑配置文件
vim /usr/local/tomcat/conf/server.xml
修改connector port 默认端口8080为80
<Connector port="80" protocol="HTTP/1.1"
在host后面
</Host>
添加一个host
<Host name="www.111.com" appBase="/data/tomcatweb"
unpackWARs="false" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="./" debug="0" reloadable="true" crossContext="true"/>
</Host>
访问测试
添加一个测试网页
[root@localhost ~]# cat /data/tomcatweb/111.jsp
<html><body><center>
Now time is:<%=new java.util.Date()%>
</center></body></html>
[root@localhost ~]#
访问测试
resin
安装依赖包
yum -y install glibc-devel.i686
yum install /lib/ld-linux.so.2
yum install openssl-devel
安装Jdk
从oracle官网下载
http://www.oracle.com/technetwork/java/javase/downloads/
解压
tar xvf jdk-8u101-linux-i586.tar.gz
移动程序文件
mv jdk1.8.0_101/ /usr/local/jdk1.8.0_101
编辑变量
vim /etc/profile.d/java.sh
JAVA_HOME=/usr/local/jdk1.8.0_101
JAVA_BIN=/usr/local/jdk1.8.0_101/bin
JRE_HOME=/usr/local/jdk1.8.0_101/jre
PATH=$PATH:/usr/local/jdk1.8.0_101/bin:/usr/local/jdk1.8.0_101/jre/bin
CLASSPATH=/usr/local/jdk1.8.0_101/jre/lib:/usr/local/jdk1.8.0_101/lib:/usr/local/jdk1.8.0_101/jre/lib/charsets.jar
在系统中生效
source /etc/profile.d/java.sh
查看Java版本
java -version
安装resin
下载
wget www.aminglinux.com/bbs/data/attachment/forum/resin-4.0.36.tar.gz
解压
tar jxvf resin-4.0.36.tar.gz
cd resin-4.0.36
配置编译选项
./configure --prefix=/usr/local/resin --with-java-home=/usr/local/jdk1.8.0_101/
编译
make
安装
make install
确认是否执行成功
echo $?
编辑配置文件
<host id="www.123.com" root-directory=".">
<!--
- webapps can be overridden/extended in the resin.xml
-->
<web-app id="/" root-directory="/data/123/"/>
</host>
服务启动
/etc/init.d/resin start
添加测试文件
vim /data/123/111.jsp
<html><body><center>
Now time is:<%=new java.util.Date()%>
</center></body></html>
测试ok
curl -x 127.0.0.1:8080 www.123.com/111.jsp
<html><body><center>
Now time is:Wed Jul 20 11:24:32 EDT 2016
</center></body></html>
Lighttpd
安装lighttpd所需依赖包
yum install gcc
yum install pcre-devel
yum install zlib-devel
yum install bzip2
yum install bzip2-devel
下载解压,配置,编译,安装
cd /usr/local/src/
wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.41.tar.gz
tar xvf lighttpd-1.4.41.tar.gz
cd lighttpd-1.4.41
./configure --prefix=/usr/local/lighttpd
make && make install
echo $?
创建配置文件中指定目录以及文件
mkdir -p /etc/lighttpd/conf.d
cd /etc/lighttpd/conf.d
touch access_log.conf
touch debug.conf
touch dirlisting.conf
touch mime.conf
mkdir -p /srv/www/htdocs
mkdir -p /var/log/lighttpd/
mkdir /srv/www/vhosts
cd /var/log/lighttpd/
touch error.log
拷贝样板文件到指定目录
cp doc/config/lighttpd.conf /usr/local/lighttpd/
cp doc/config/lighttpd.conf /etc/lighttpd/.
配置权限
chown -R lighttpd.lighttpd /var/log/lighttpd
chown -R lighttpd.lighttpd /etc/lighttpd
使配置生效
/usr/local/lighttpd/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
查看lighttpd占用80端口的进程
lsof -i:80
写入测试文件
[root@localhost htdocs]# vim /srv/www/htdocs/index.html
fsfsfs
配置重新加载
/usr/local/lighttpd/sbin/lighttpd -tt -f /etc/lighttpd/lighttpd.conf
测试
curl -i http://192.168.211.128