关闭

Linux\CentOS系统下的服务器搭建,下载编译环境,安装vsFtpd、nginx、MySQL、JDK、Tomcat、PHP

标签: linuxnginxphpmysqlcentos
2436人阅读 评论(0) 收藏 举报
分类:

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;




1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:222485次
    • 积分:2867
    • 等级:
    • 排名:第12461名
    • 原创:58篇
    • 转载:4篇
    • 译文:0篇
    • 评论:48条
    博客专栏
    文章分类
    最新评论