(本文刊发于《网络安全和信息化》2018第12期)
CentOS,也叫做社区企业操作系统,是企业Linux发行版领头羊Red Hat Enterprise Linux的再编译版本,通过一定的安装配置,我们可以在这个免费的系统中运行用php开发的网站,也可以运行用C#.net开发的aspx网站,当然也可以同时支持php及aspx。
具体过程:
一、安装CentOs系统。具体过程这里不再赘述,只是提醒两个小问题,1,系统安装时可以选择桌面安装,这样初学者可以利用CentOS的可视化界面进行相关操作,而不局限于终端命令行。2、为了安全起见,尽量把默认的ssh 22端口改一下,具体方法如下:用putty等软件登录系统终端,并输入以下命令修改防火墙设置:
# firewall-cmd --zone=public --add-port=2018/tcp –permanent
# semanage port -a -t ssh_port_t -p tcp 2018
# semanage port -l | grep ssh
再修改sshd_config
# vi /etc/ssh/sshd_config
在文件中加入一行:
Port=2018 #即把默认的22端口改成2018
保存文件后,执行下面命令:
# systemctl restart sshd
# systemctl restart sshd.service
# systemctl restart firewalld.service
重启动后,就不能再用22端口登录服务器了,只能用2018端口来进行相关操作。用WinSCP软件登录服务器,测试是否可以正常登录,顺便做点儿准备工作,从网上下载并上传以下两个安装包文件到 /usr/local/src 目录:
mono-3.12.1.tar.bz2
jexus-5.6.5.tar.gz
下载并上传simsun.ttc 文件到 /usr/share/fonts 目录。
再用putty软件登录服务器,运行以下命令:
# yum clean all #清除yum缓存
# yum makecache #缓存本地yum源中的软件包信息
# yum -y update
# yum -y install make gcc perl perl-devel
# yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel freetype-devel fontconfig-devel cairo-devel
# rpm -ivh http://mirrors.zju.edu.cn/epel//6/x86_64/epel-release-6-8.noarch.rpm
# yum -y install libgdiplus-devel
到此,准备工作完成。
二、yum安装mysql5.7。
依次执行命令:
# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
# rpm -ivh mysql57-community-release-el7-8.noarch.rpm
# yum install mysql-server
# service mysqld start
# grep "password" /var/log/mysqld.log
这时会看到如下信息:
A temporary password is generated for root@localhost: w5;JQg(dhqyL
信息最后的字符串“w5;JQg(dhqyL”就是mysql的临时密码。
开始登录mysql:
# mysql -u root -p
输入刚才的临时密码: w5;JQg(dhqyL
登录成功后就可以改密码了。
mysql> set password for root@localhost = password('您的新密码');
注意这个密码要符合安全规则,大小写+数字+特殊字符+超过一定位数。
mysql> flush privileges;
mysql> quit
退出后再用新密码登录一下,如果成功了,先别做其他操作,最好要重新启动一下服务器。重启动服务器后,如果mysql没有自动启动,则自行设置随系统自动启动mysqld服务。另外再进行一些赋权设置:
mysql> grant all privileges on *.* to root@"%" identified by "您的新密码";
mysql> grant all privileges on *.* to root@"localhost" identified by "您的新密码";
mysql> flush privileges;
mysql> quit
为了解决中文乱码问题,还需要修改配置文件my.cnf:
# vi /etc/my.cnf #在各段中加入如下内容
[mysqld]
character-set-server=utf8
init_connect='SET NAMES utf8'
[mysql]
no-auto-rehash
default-character-set=utf8
[client]
default-character-set=utf8
用service mysqld restart命令重启mysql后再登录,用以下命令查看一下字符集,出现6个utf8字样就算成功了。
mysql> show variables like '%character%';
三、安装mono3.12。
# cd /usr/local/src
# tar -jxvf mono-3.12.1.tar.bz2
# cd mono-3.12.1
# ./configure --prefix=/usr
# make
# make install
四、安装 jexus 5.6。
# cd /usr/local/src
# tar -zxvf jexus-5.6.5.tar.gz
tar -zxvf jexus-5.8.2-x64.tar.gz
# cd jexus-5.6.5
cd jexus
# ./install
安装字体
# yum -y install fontconfig mkfontscale
# cd /usr/share/fonts
# fc-cache -fv #中文字体
# mozroots --import --ask-remove --machine
修改jws文件,以设置忽略字母大小写:
# vi /usr/jexus/jws
取消注释 export MONO_IOMAP="all" 这行代码(即去掉句首的#)。
用以下命令启动jexus:
# /usr/jexus/jws start
或
# /usr/jexus/jws restart
可以根据返回信息判断是否启动成功,启动成功后在客户端浏览器地址栏中输入:http://服务器IP/info ,如:http://192.168.1.8/info ,测试是否可以访问,如出现“Welcome to Jexus”字样,即为访问成功,如果不能访问,则需要设置一下防火墙:
# firewall-cmd --zone=public --add-port=80/tcp --permanent
重启动防火墙
# systemctl restart firewalld.service
再测试是否可以正常访问即可。
接下来设置jexus开机自启动。
# cd /etc/init.d/
# vi jws
在jws文件中加入以下内容:
#!/bin/bash
#chkconfig: 2345 80 05
#description:jws
#
. /etc/rc.d/init.d/functions
case "$1" in
start)
echo "Jexus Start.."
/usr/jexus/jws start
;;
stop)
echo "Jexus Stop.."
/usr/jexus/jws stop
;;
restart)
echo "Jexus Restart"
/usr/jexus/jws restart
;;
status)
/usr/jexus/jws status
;;
*)
exit 1
;;
esac
exit $RETVAL
保存文件后,再把这个脚本加入系统服务。
# chmod 766 jws
# chkconfig --add jws
五、安装php7。
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# yum install php70w-common php70w-fpm php70w-opcache php70w-gd php70w-mysqlnd php70w-mbstring php70w-pecl-redis php70w-pecl-memcached php70w-devel
# php -v #查看版本信息。
能看到版本信息,即说明安装成功。然后进行相关设置:
# vi /etc/php.ini
在配置文件php.ini中找到“cgi.force_redirect=1”这一行,然后把前面的注释去掉,并把“1”改为“0”。然后再修改以下与文件上传与错误显示等相关的内容:
max_execution_time = 600
max_input_time = 600
memory_limit = 128m
file_uploads = on
upload_tmp_dir = /tmp
upload_max_filesize = 100m
post_max_size = 100m
output_buffering =4096
display_errors = on
若要支持发送邮件,还需在php.ini中设置:
sendmail_path= /usr/sbin/sendmail -t -i
再将main.cf中的init_interface配置localhost改为all
# vi /etc/postfix/main.cf
inet_interfaces = all
最后再修改一下jws.conf
# vi /usr/jexus/jws.conf
把“php-fcgi.set=/usr/bin/php-cgi,6”前面的注释去除,这样jexus就就可以通过CGI的方式支持PHP了。
六、建立站点。
# cd /usr/jexus/siteconf
# vi www.qhdedu.com #建立文件名为www.qhdedu.com的站点文件。
内容如下:
# Web Site: www.qhdedu.com
#端口
port=80
#站点目录
root=/ /var/www/www.qhdedu.com
#站点域名
hosts=www.qhdedu.com
# addr=0.0.0.0
# CheckQuery=false
NoLog=true
# NoFile=/index.aspx
# Keep_Alive=false
# UseGZIP=true
#使用php
usephp=true
# UseHttps=true
# DenyFrom=192.168.0.233, 192.168.1.*, 192.168.2.0/24
# AllowFrom=192.168.*.*
# DenyDirs=~/cgi, ~/upfiles
# indexes=myindex.aspx
# rewrite=^/.+?.(asp|php|cgi|pl|sh)$ /index.aspx
# reproxy=/bbs/ http://192.168.1.112/bbs/
# Jexus php fastcgi address is '/var/run/jexus/phpsvr'
#下面这一句前边的#一定要去掉
fastcgi.add=php|socket:/var/run/jexus/phpsvr
# php-fpm listen address is '127.0.0.1:9000'
# fastcgi.add=php|tcp:127.0.0.1:9000
(前边带#号的行,可以不录入)
多个站点就建立多个文件,文件名就用各自的域名即可,只是注意这些域名必须指向服务器IP,重启动jexus或直接启动服务器,就可以正常访问站点了。
赵学作,河北科技师范学院副教授,研究方向:网站建设及软件开发。