Linux\CentOS系统下的服务器搭建,下载编译环境,安装vsFtpd、nginx、MySQL、JDK、Tomcat、PHP
按照以下步骤操作就可以搭建一个可运行java、php文件的Linux系统
一、下载编译环境
mv /etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup
mv /etc/yum.repos.d/CentOS-fasttrack.repo/etc/yum.repos.d/CentOS-fasttrack.repo.backup
2、进入目录
cd /etc/yum.repos.d/
3、设置更新地址
curl -O http://mirrors.163.com/.help/CentOS6-Base-163.repo
4、安装前设置
yum clean all
yum makecache
安装gcc时出现这个错误时:yum[Errno 256] No more mirrors to try
5、开始安装
yum install bind-utils
yum install wget
yum install gcc
bind-utils:DNS是一种将域名解析为IP地址的服务。如解析百度的地址得到111.13.100.92
bind是linux系统下的一个DNS服务程序。bind-utils是bind软件提供的一组DNS工具包。里面有一些DNS工具包
wget:Linux系统中的wget是一个下载文件的工具,wget [参数] [URL地址]:用于从网络上下载资源,没有指定目录,下载资源会默认为当前的目录
gcc:编程所需
二、安装vsFtpd
1、安装vsFtpd
rpm -qa | grep ftpd 查看当前系统是否安装ftp服务
yum search ftpd 查询远端yum源中是否有ftpd‘
yum install vsftpd 安装vsftpd
rpm -ql vsftpd 查看vsFtpd安装情况
修改vsftpd服务启动
chkconfig --list vsftpd
cd /etc/init.d
chkconfig --add vsftpd
chkconfig --level 3 vsftpd on 开启级别3上启动
启动vsftpd服务:
netstat -na|more 查看是否开启默认的FTP端口21
/etc/init.d/vsftpd start
netstat -na|more
修改iptables防火墙配置
测试是否为防火墙
/etc/init.d/iptables stop 暂时关闭防火墙
cd /etc/sysconfig/
vi iptables
在:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
下面添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
重启防火墙服务
/etc/init.d/iptables restart
出现如下错误提示:
[右] 500 OOPS: cannot change directory:/home/abc
解决方法:
sestatus -b | grep ftp
永久开启该规则,这里需要等待一会
setsebool -P ftp_home_dir on
成功后,就可以使用客户端工具(FlashFXP)上传文件
三、安装nginx
1、解压
tar zxvf nginx-1.9.4.tar.gz
cd nginx-1.9.4
从原码方式进行安装
2、查看帮助信息
./configure --help|more
3、检查安装环境
./configure --prefix=/opt/nginx
会出现错误,缺少PCRE库
yum install pcre-devel
出现错误提示./configure:error:the HTTP gzip module requires the zlib library
yum install zlib-devel
说明:每次错误后需要重新执行configure(包含配置参数)
完成后执行:configure
make
以root身份执行
/bin/su -
cd /home/zhuwentao/nginx-1.9.4
make install
启动nginx(必须要以root身份启动)
/opt/nginx/sbin/nginx
查看是否启动成功
ps -ef|grep nginx
修改iptables的设置,开启80端口
vi /etc/sysconfig/iptables
在 -A INPUT m state --state NEW -m tcp -p tcp.....
里面加上80端口
重启防火墙
/etc/init.d/iptables restart
在浏览器中输入192.168.56.1
如果能出现Welcome to nginx!界面则代表成功了,Nginx安装完成
默认情况下:
conf —— 配置文件夹
html —— 默认服务器的Webroot
sbin —— Nginx核心
logs —— 日志文件夹
做一个网页来测试
vi test.html
如果出现404错误
也许是html的路径问题,此html不是安装目录下的html文件夹
cd /opt/nginx/html
要在该路径下新建html文件,才不报404错误
开机自动启动Nginx
vi /etc/rc.local中加入一行
/opt/nginx/sbin/nginx
四、安装MySQL
tar zxvf mysql-5.6.26.tar.gz
cd mysql-5.6.26
安装Cmake
yum install cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/opt/mysql5.6 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_DATADIR=/opt/mysql5.6/data \
-DMYSQL_UNIX_ADDR=/opt/mysql5.6/mysql.sock \
每次重新cmake前需要删除CMakeCache.txt文件
安装ncurses-devel
yum install ncurses-devel
安装g++
yum install gcc-c++
安装bison
yum install bison
编译MySQL
make
安装MySQL
cd /home/abc/mysql-5.6.26
make install #root用户执行
初始化数据库引擎
cd /opt/mysql5.6
scripts/mysql_install_db --basedir=/opt/mysql5.6 --datadir=/opt/mysql5.6/data
提示 /usr/bin/perl: bad interpreter 需要Perl
yum install perl
系统需要mysql用户(如果未创建),则:
/usr/sbin/useradd mysql
chown mysql:mysql -R /opt/mysql5.6
编辑mysql配置文件
vi my.cnf
basedir = /opt/mysql5.6
datadir = /opt/mysql5.6/data
socket = /opt/mysql5.6/mysql.sock
启动mysql服务
support-files/mysql.server start
bin/mysql -u root #测试
mysql> show variables like '%char%';
检查是否是utf8
加入系统服务
cp support-files/mysql.server /etc/init.d/mysql
cd /etc/init.d
chkconfig --list mysql
chkconfig --add mysql
chkconfig --list mysql
五、安装JDK和Tomcat
普通用户
tar zvxf jdk-8u60-linux-i586.tar.gz
cd jdk1.8.0_60
root用户
mkdir /opt/java
mv /home/abc/jdk1.8.0_60 /opt/java/.
普通用户
tar zvxf apache-tomcat-8.0.26.tar.gz
root用户
mv /home/abc/apache-tomcat-8.0.26 /opt/.
cd /opt/apache-tomcat-8.0.26/bin
vi setclasspath.sh
增加
export JAVA_HOME=/opt/java/jdk1.8.0_60
启动测试Tomcat
./startup.sh
关闭防火墙做测试
/etc/init.d/iptables stop
用浏览器浏览http://192.168.56.1:8080
在/opt下建立文件夹 web/jsp
mkdir -p /opt/web/jsp
mkdir -p /opt/web/jsp/WEB-INF
cd /opt/apache-tomcat-8.0.26/conf/
修改apache-tomcat-8.0.26的server.xml增加虚拟路径配置
<Context docBase="/opt/web/jsp" path="/test" debug="0" reloadable="false" />
在/opt/web/jsp/下新建index.jsp文件内容为
<%=new java.util.Date()%>
重启Tomcat服务器
./shutdown.sh
./startup.sh
访问 http://192.168.56.1:8080/test 测试
修改/opt/nginx/conf/nginx.conf
在http段中加入负载均衡设置
upstream web_app {
server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
#server 127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=30s;
}
在加入服务器设置
server{
listen 81;
server_name localhost;
index index.jsp index.html index.htm;
root /opt/web/jsp;
location / {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://web_app;
expires 3d;
}
location ~^/(WEB-INF)/{
deny all;
}
}
重新启动nginx
ps -ef|grep nginx
kill -9 <nginx-pid>
/opt/nginx/sbin/nginx
编辑防火墙加入81端口
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 81 -j ACCEPT
在/etc/rc.local中加入
/opt/apache-tomcat-8.0.26/bin/startup.sh
遗留问题:负载均衡后的session处理,通过内存数据库服务器处理。
其中一个:memcached
六、安装PHP
tar zvxf php-5.6.13.tar.gz
cd php-5.6.13
./configure \
--prefix=/opt/php5.6.13 \
--with-config-file-path=/opt/php5.6.13 \
--disable-ipv6 \
--disable-debug \
--disable-rpath \
--enable-fpm \
--with-mysql=/opt/mysql5.6 \
--with-mysql-sock=/opt/mysql5.6/mysql.sock \
--with-mysqli=/opt/mysql5.6/bin/mysql_config \
--with-pdo-mysql=/opt/mysql5.6 \
--with-gd \
--enable-gd-native-ttf \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-shmop \
错误提示
configure: error: xml2-config not found. Please check your libxml2 installation.
安装libxml2-devel
yum install libxml2-devel
错误提示
configure: error: jpeglib.h not found.
安装GD处理图形库
yum install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel
错误提示
configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no
编辑 vi /etc/ld.so.conf
加入
/usr/local/lib
/opt/mysql5.6/lib
更新动态库(so)信息
ldconfig
make -j9
用root用户
cd /home/abc/php-5.6.13
make install
配置php应用服务器(fpm)
cp /opt/php5.6.13/etc/php-fpm.conf.default /opt/php5.6.13/etc/php-fpm.conf
cp /home/zhuwentao/MyDirTest/php-5.6.13/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig --list php-fpm
启动PHP应用服务器
ps -ef|grep php
/etc/init.d/php-fpm start
ps -ef|grep php
七、Nginx与PHP的共同工作
cd /opt/nginx/conf
编辑nginx.conf修改php的配置
修改,并去掉#号
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
为
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
配置Nginx启动服务脚本
https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/
vi /etc/init.d/nginx
加入上述网址中的内容
修改Nginx的相关路径
nginx="/usr/sbin/nginx" 变为
nginx="/opt/nginx/sbin/nginx"
修改NGINX_CONF_FILE="/etc/nginx/nginx.conf" 变为
NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"
修改start()段中的“make_dirs” 注释掉
chmod +x /etc/init.d/nginx
测试启动脚本
ps -ef|grep nginx
/etc/init.d/nginx stop
ps -ef|grep nginx
/etc/init.d/nginx start
cd /etc/init.d
chkconfig --add nginx
chkconfig --list nginx
vi /etc/init.d/nginx
修改 # chkconfig: - 85 15
变为 # chkconfig: 2345 85 15
chkconfig --del nginx
chkconfig --add nginx
chkconfig --list nginx
vi /etc/rc.local
注释启动脚本中的nginx的启动
#/opt/nginx/sbin/nginx
vi /opt/nginx/html/index.php
<?php
phpinfo();
?>
八、安装MySQL管理工具phpMyAdmin
下载phpMyAdmin-4.5.0.2-all-languages.zip并上传到服务器
解压zip包需要unzip
yum install unzip
cd ~
unzip phpMyAdmin-4.5.0.2-all-languages.zip
mv phpMyAdmin-4.5.0.2-all-languages /opt/nginx/html/phpMyAdmin
浏览器中访问
http://192.168.56.1/phpMyAdmin 提示缺少mbstring库的支持
需重新编译php,在原有的编译选项后面加上 --enable-mbstring \
具体步骤
cd ~
cd php-5.6.13
make clean
./configure \
--prefix=/opt/php5.6.13 \
--with-config-file-path=/opt/php5.6.13 \
--disable-ipv6 \
--disable-debug \
--disable-rpath \
--enable-fpm \
--with-mysql=/opt/mysql5.6 \
--with-mysql-sock=/opt/mysql5.6/mysql.sock \
--with-mysqli=/opt/mysql5.6/bin/mysql_config \
--with-pdo-mysql=/opt/mysql5.6 \
--with-gd \
--enable-gd-native-ttf \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-shmop \
--enable-mbstring \
make -j9
等待 ...
make install
等待 ...
重启php应用服务器
/etc/init.d/php-fpm restart
再次访问http://192.168.56.1/phpMyAdmin
使用root用户登录(默认没有密码) 出现提示:
空密码登录被禁止 (参见 允许空密码)
需要修改phpMyAdmin配置文件
cd /opt/nginx/html/phpMyAdmin
cp config.sample.inc.php config.inc.php
vi config.inc.php 修改相关配置
修改
$cfg['blowfish_secret'] = '';
为
$cfg['blowfish_secret'] = 'adfdsalksjj123a$'; 任意字符串即可
修改
$cfg['Servers'][$i]['AllowNoPassword'] = false;
为
$cfg['Servers'][$i]['AllowNoPassword'] = true;