LNMP搭建;带三个站点(Typecho、discuz、dedecms)
下好所需的包
创新互联专业为企业提供浠水网站建设、浠水做网站、浠水网站设计、浠水网站制作等企业网站建设、网页设计与制作、浠水企业网站模板建站服务,十多年浠水做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz nginx-1.12.1.tar.gzphp-5.6.30.tar.bz2 安装msyql
解压mysql
mysql是二进制免编译包,所以省去的编译的过程
移动到/usr/local/下,更名为mysql
tar-zxvfmysql-5.6.35-linux-glibc2.5-x86_64.tar.g mvmysql-5.6.35-linux-glibc2.5-x86_64/usr/local/mysql
初始化
进入所在目录进行
cd/usr/local/mysql
初始化前,记得确定是否有data目录
./scripts/mysql_install_db--user=mysql--datadir=/data/mysql
安装缺少的依赖包,否则不能成功初始化
yuminstall-yperl-Data-Dumper.x86_64 yuminstall-ylibaio
都是在mysql目录下进行的
拷贝配置文件
cpsupport-files/my-default.cnf/etc/my.cnf
拷贝启动脚本
cpsupport-files/mysql.server/etc/init.d/mysqld
更改配置文件
vim/etc/my.cnf
在[mysqld]下 增加
datadir=/data/mysql socket=/tmp/mysql.sock
更改启动脚本
vim/etc/init.d/mysqld
找到下面两个项,添加上路径
basedir=/usr/local/mysql datadir=/data/mysql
检查开启服务
/etc/init.d/mysqldstart
屏幕输出
StartingMySQL.Loggingto\'/data/mysql/ip-172-31-45-37.us-east-2.compute.internal.err\'. SUCCESS!
将mysql加入到服务列表
chkconfig--addmysqld
配置mysql服务,开机启动
chkconfigmysqldon 安装php-fpm
安装依赖包
yuminstall-ygcc yuminstall-ylibxml2-devel.x86_64 yuminstall-yopenssl-devel.x86_64 yuminstall-ybzip2-devel.x86_64 yuminstall-ylibjpeg-devel yuminstall-ylibpng-devel yuminstall-yfreetype-devel yuminstall-ylibcurl-devel.x86_64
安装第三方yum源//因为是亚马逊的主机不支持安装拓展源,使用安装第三方源
wgethttp://www.atomicorp.com/installers/atomic shatomic yuminstallphp-mcryptlibmcryptlibmcrypt-devel
初始化
./configure--prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-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 --with-pear --with-curl --with-openssl --disable-fileinfo//编译错误之后新加入
编译
make&&makeinstall
出错
make:***[ext/fileinfo/libmagic/apprentice.lo]Error1
当配置PHP时出现make:***[ext/fileinfo/libmagic/apprentice.lo]Error1时
是因为服务器内存不足1G。
只需要在配置命令中添加--disable-fileinfo即可
拷贝主配置文件
cpphp.ini-production/usr/local/php-fpm/etc/php.ini
新增配置文件
vim/usr/local/php-fpm/etc/php-fpm.con [global] pid=/usr/local/php-fpm/var/run/php-fpm.pid error_log=/usr/local/php-fpm/var/log/php-fpm.log include=etc/php-fpm.d/*.conf//可以自定义pool
拷贝启动脚本
cp/usr/local/src/php-5.6.30/sapi/fpm/init.d.php-fpm/etc/init.d/php-fpm
将php-fpm加入到服务列表里
chkconfig--addphp-fpm
配置开机启动php-fpm
chkconfigphp-fpmon
开启服务器
servicephp-fpmstart
查看进程,服务是否开启
psaux|grepphp-fpm Nginx安装
./configure--prefix=/usr/local/nginx
给Nginx创建启动脚本
vim/etc/init.d/nginx #!/bin/bash #chkconfig:-3021 #description:httpservice. #SourceFunctionLibrary ./etc/init.d/functions #NginxSettings NGINX_SBIN="/usr/local/nginx/sbin/nginx" NGINX_CONF="/usr/local/nginx/conf/nginx.conf" NGINX_PID="/usr/local/nginx/logs/nginx.pid" RETVAL=0 prog="Nginx" start() { echo-n$"Starting$prog:" mkdir-p/dev/shm/nginx_temp daemon$NGINX_SBIN-c$NGINX_CONF RETVAL=$? echo return$RETVAL } stop() { echo-n$"Stopping$prog:" killproc-p$NGINX_PID$NGINX_SBIN-TERM rm-rf/dev/shm/nginx_temp RETVAL=$? echo return$RETVAL } reload() { echo-n$"Reloading$prog:" killproc-p$NGINX_PID$NGINX_SBIN-HUP RETVAL=$? echo return$RETVAL } restart() { stop start } configtest() { $NGINX_SBIN-c$NGINX_CONF-t return0 } case"$1"in start) start ;; stop) stop ;; reload) reload ;; restart) restart ;; configtest) configtest ;; *) echo$"Usage:$0{start|stop|reload|restart|configtest}" RETVAL=1 esac exit$RETVAL
自定义nginx.conf文件
usernobodynobody; worker_processes2; error_log/usr/local/nginx/logs/nginx_error.logcrit; pid/usr/local/nginx/logs/nginx.pid; worker_rlimit_nofile51200; events { useepoll; worker_connections6000; } http { includemime.types; default_typeapplication/octet-stream; server_names_hash_bucket_size3526; server_names_hash_max_size4096; log_formatcombined_realip\'$remote_addr$http_x_forwarded_for[$time_local]\' \'$host"$request_uri"$status\' \'"$http_referer""$http_user_agent"\'; sendfileon; tcp_nopushon; keepalive_timeout30; client_header_timeout3m; client_body_timeout3m; send_timeout3m; connection_pool_size256; client_header_buffer_size1k; large_client_header_buffers84k; request_pool_size4k; output_buffers432k; postpone_output1460; client_max_body_size10m; client_body_buffer_size256k; client_body_temp_path/usr/local/nginx/client_body_temp; proxy_temp_path/usr/local/nginx/proxy_temp; fastcgi_temp_path/usr/local/nginx/fastcgi_temp; fastcgi_intercept_errorson; tcp_nodelayon; gzipon; gzip_min_length1k; gzip_buffers48k; gzip_comp_level5; gzip_http_version1.1; gzip_typestext/plainapplication/x-javascripttext/csstext/htm application/xml; includevhost/*.conf;//新增这一行,定义默认虚拟主机的目录 }
检查一下是否存在语法问题
/usr/local/nginx/sbin/nginx-t
重启服务
/usr/local/nginx/sbin/nginx-sreload
报错:
nginx:[error]invalidPIDnumber""in"/usr/local/nginx/logs/nginx.pid"
原来服务器没有启动
servicenginxstart
更改配置文件权限
chmod755/etc/init.d/nginx
将nginx加入到服务列表里
chkconfig--addnginx
配置开启启动nginx服务
chkconfignginxon 搭建blog、cms、bbs
下好所需文件
解压,丢解压好的包到/data/wwwroot/目录
为了保证访问,给目录权限
chmod755/data/wwwroot/ blog《Typecho》
配置vhost
vim/usr/local/nginx/conf/vhost/build.conf
内容如下:
server { listen80; server_nameblog.in-86.com; indexindex.htmlindex.htmindex.php; root/data/wwwroot/build; access_log/tmp/build.com.logcombined_realip;//访问日志 if(!-e$request_filename){ rewrite^(.*)$/index.php$1last; } location~.php(/.*)*$ { set$path_info""; set$real_script_name$fastcgi_script_name; if($fastcgi_script_name~"^(.+?.php)(/.+)$"){ set$real_script_name$1; set$path_info$2; } fastcgi_paramSCRIPT_FILENAME$document_root$real_script_name; fastcgi_paramSCRIPT_NAME$real_script_name; fastcgi_paramPATH_INFO$path_info; includefastcgi_params; fastcgi_passunix:/tmp/php-fcgi.sock; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME/data/wwwroot/build$fastcgi_script_name; } }
高亮为Typecho这个程序的必要配置,如不这样配置会导致管理内页访问404
创建pool配置文件
vim/usr/local/php-fpm/etc/php-fpm.d/blog.conf
内容如下:
[blog] listen=/tmp/php-fcgi.sock listen.mode=666 user=php-fpm group=php-fpm 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
配置好记得检查语法,重新加载服务
nginx
/usr/local/nginx/sbin/nginx-t /usr/local/nginx/sbin/nginx-sreload
php-fpm
/usr/local/php-fpm/sbin/php-fpm-t /etc/init.d/php-fpmreload
关闭selinux防火墙
getenforce//检查防火墙状态 setenforce0//临时关闭 vim/etc/selinux/config//改配置文件永久关闭
检查iptables
iptables-F iptables-IINPUT-ptcp--dport80-jACCEP//放行80 iptables-nvL//查看规则 netstat-lntp//查看nginx是否开始监听80端口
检查是否通
curl-x127.0.0.1:80blog.in-86.com-I
出错:
curl返回码200,证明本地访问没有问题,但是浏览器访问不到
检查了80端口的连通性
Windows
telnet主机IP80
发现80端口不通的,多次检查,才发现域名解析的主机名错了;调整解析的主机名以后,就能正常访问了。
浏览器安装Typecho 再次出现问题。mysql不能进入,不然就进入了创建不了数据库 方法操作很简单,如下:
#/etc/init.d/mysqldstop//停止MySQL服务的运行 #mysqld_safe--user=mysql--skip-grant-tables--skip-networking&//跳过受权表访问 #mysql-urootmysql//登录mysql
在mysql5.7以下的版本如下:
mysql>UPDATEuserSETPassword=PASSWORD(\'newpassword\')whereUSER=\'root\'andhost=\'127.0.0.1\'orhost=\'localhost\';//把空的用户密码都修改成非空的密码就行了。
在mysql5.7版本如下:
updatemysql.usersetauthentication_string=password(\'newpassword\')whereuser=\'root\'andhost=\'127.0.0.1\'orhost=\'localhost\';
mysql>FLUSHPRIVILEGES; mysql>quit#/etc/init.d/mysqldrestart//离开并重启mysql #mysql-uroot-p Enterpassword:<输入新设的密码newpassword>
这时就能正常进入了
mysql-uroot-p//登录 createdatabasetypecho;//创建数据库 grantallon*.*toroot@127.0.0.1identifiedby\'newpassword\';
然后就可以成功的配置安装Typecho
重Typecho的安装步骤,即可完成discuz、dedecms的安装(mysql除外)数据库统一使用root密码newpassword
安装discuz的需要对几个特殊的目录给予写的权限,在解压好所有文件的时候,我就直接执行的chmod755-R,所有就省去了这个步骤(因为是测试,权限的不是特别重要)
本文名称:LNMP搭建;带三个站点(Typecho、discuz、dedecms)
新闻来源:http://ybzwz.com/article/cppsge.html