柔情似水 发表于 2015-1-14 21:10:22

CentOS教程之CentOS 6.3 纯编译装置Nginx+MySQL+PHP

小知识:Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
申明:

操纵体系:CentOS6.332位

筹办篇:

1、设置好IP、DNS、网关,确保利用近程毗连工具可以毗连办事器

2、设置防火墙,开启80端口、3306端口

vi/etc/sysconfig/iptables

-AINPUT-mstate--stateNEW-mtcp-ptcp--dport80-jACCEPT#同意80端口经由过程防火墙

-AINPUT-mstate--stateNEW-mtcp-ptcp--dport3306-jACCEPT#同意3306端口经由过程防火墙

出格提醒:良多网友把这两条划定规矩增加到防火墙设置的最初一行,招致防火墙启动失利,准确的应当是增加到默许的22端口这条划定规矩的上面

增加好以后防火墙划定规矩以下所示:

#########################################################

#Firewallconfigurationwrittenbysystem-config-firewall

#Manualcustomizationofthisfileisnotrecommended.

*filter

:INPUTACCEPT

:FORWARDACCEPT

:OUTPUTACCEPT

-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT

-AINPUT-picmp-jACCEPT

-AINPUT-ilo-jACCEPT

-AINPUT-mstate--stateNEW-mtcp-ptcp--dport22-jACCEPT

-AINPUT-mstate--stateNEW-mtcp-ptcp--dport80-jACCEPT

-AINPUT-mstate--stateNEW-mtcp-ptcp--dport3306-jACCEPT

-AINPUT-jREJECT--reject-withicmp-host-prohibited

-AFORWARD-jREJECT--reject-withicmp-host-prohibited

COMMIT

#########################################################

/etc/init.d/iptablesrestart#最初重启防火墙使设置失效

3、封闭SELINUX

vi/etc/selinux/config

#SELINUX=enforcing#正文失落

#SELINUXTYPE=targeted#正文失落

SELINUX=disabled#增添

:wq保留,封闭

shutdown-rnow#重启体系

四、体系商定

软件源代码包寄存地位:/usr/local/src

源码包编译装置地位:/usr/local/软件名字

5、下载软件包

1、下载nginx(今朝不乱版)

http://nginx.org/download/nginx-1.2.2.tar.gz

2、下载pcre(撑持nginx伪静态)

ftp://ftp.csx.cam.ac.uk/pub/soft...re/pcre-8.31.tar.gz

4、下载MySQL

http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.25a.tar.gz

5、下载php

http://cn.php.net/distributions/php-5.4.5.tar.gz

6、下载cmake(MySQL编译工具)

http://www.ckuyun.com/files/v2.8/cmake-2.8.8.tar.gz

7、下载libmcrypt(PHPlibmcrypt模块)

http://nchc.dl.sourceforge.net/p...mcrypt-2.5.8.tar.gz

以上软件包利用工具上传到/usr/local/src目次

6、装置编译工具及库文件(利用CentOSyum下令装置)
yuminstallmakeapr*autoconfautomakecurl-develgccgcc-c++zlib-developensslopenssl-develpcre-develgdkernelkeyutilspatchperlkernel-headerscompat*mpfrcppglibclibgomplibstdc++-develpplcloog-pplkeyutils-libs-devellibcom_err-devellibsepol-devellibselinux-develkrb5-develzlib-devellibXpm*freetypelibjpeg*libpng*php-commonphp-gdncurses*libtool*libxml2libxml2-develpatch

装置篇

以下是用putty工具近程登录到办事器,在下令行上面操纵的

1、装置cmake

cd/usr/local/src

tarzxvfcmake-2.8.8.tar.gz

cdcmake-2.8.8

./configure

make#编译

makeinstall#装置

2、装置mysql

groupaddmysql#增加mysql组

useradd-gmysqlmysql-s/bin/false#创立用户mysql并到场到mysql组,不同意mysql用户间接登录体系

mkdir-p/data/mysql#创立MySQL数据库寄存目次

chown-Rmysql:mysql/data/mysql#设置MySQL数据库目次权限

mkdir-p/usr/local/mysql#创立MySQL装置目次

cd/usr/local/src

tarzxvfmysql-5.5.25a.tar.gz#解压

cdmysql-5.5.25a

cmake.-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-DMYSQL_DATADIR=/data/mysql-DSYSCONFDIR=/etc#设置

make#编译

makeinstall#装置

cd/usr/local/mysql

cp./support-files/my-huge.cnf/etc/my.cnf#拷贝设置文件(注重:假如/etc目次上面默许有一个my.cnf,间接掩盖便可)

vi/etc/my.cnf#编纂设置文件,在局部增添上面一行

datadir=/data/mysql#增加MySQL数据库路径

:wq!#保留加入

./scripts/mysql_install_db--user=mysql#天生mysql体系数据库

cp./support-files/mysql.server/etc/rc.d/init.d/mysqld#把Mysql到场体系启动

chmod755/etc/init.d/mysqld#增添实行权限

chkconfigmysqldon#到场开机启动

vi/etc/rc.d/init.d/mysqld#编纂

basedir=/usr/local/mysql#MySQL步伐装置路径

datadir=/data/mysql#MySQl数据库寄存目次

servicemysqldstart#启动

vi/etc/profile#把mysql办事到场体系情况变量:在最初增加上面这一行

exportPATH=$PATH:/usr/local/mysql/bin

:wq!#保留加入

上面这两行把myslq的库文件链接到体系默许的地位,如许你在编译相似PHP等软件时能够不必指定mysql的库文件地点。

ln-s/usr/local/mysql/lib/mysql/usr/lib/mysql

ln-s/usr/local/mysql/include/mysql/usr/include/mysql

shutdown-rnow#必要重启体系,守候体系从头启动以后持续在终端下令行上面操纵

mysql_secure_installation#设置Mysql暗码

依据提醒按Y回车

然后输出2次暗码

持续按Y回车,直到设置完成

大概间接修正暗码/usr/local/mysql/bin/mysqladmin-uroot-ppassword"123456"#修正暗码

servicemysqldrestart#重启

到此,mysql装置完成!

3、装置pcre

cd/usr/local/src

mkdir/usr/local/pcre#创立装置目次

tarzxvfpcre-8.31.tar.gz

cdpcre-8.31

./configure--prefix=/usr/local/pcre#设置

make

makeinstall

4、装置nginx

cd/usr/local/src

groupaddwww#增加www组

useradd-gwwwwww-s/bin/false#创立nginx运转账户www并到场到www组,不同意www用户间接登录体系

tarzxvfnginx-1.2.2.tar.gz

cdnginx-1.2.2
./configure--prefix=/usr/local/nginx--without-http_memcached_module--user=www--group=www--with-http_stub_status_module--with-openssl=/usr/--with-pcre=/usr/local/src/pcre-8.31
注重:--with-pcre=/usr/local/src/pcre-8.31指向的是源码包解压的路径,而不是装置的路径,不然会报错

make

makeinstall

/usr/local/nginx/sbin/nginx#启动nginx

设置nginx开启启动

vi/etc/rc.d/init.d/nginx#编纂启动文件增加上面内容

=======================================================

#!/bin/bash

#nginxStartupscriptfortheNginxHTTPServer

#itisv.0.0.2version.

#chkconfig:-8515

#description:Nginxisahigh-performancewebandproxyserver.

#Ithasalotoffeatures,butitsnotforeveryone.

#processname:nginx

#pidfile:/var/run/nginx.pid

#config:/usr/local/nginx/conf/nginx.conf

nginxd=/usr/local/nginx/sbin/nginx

nginx_config=/usr/local/nginx/conf/nginx.conf

nginx_pid=/usr/local/nginx/logs/nginx.pid

RETVAL=0

prog="nginx"

#Sourcefunctionlibrary.

./etc/rc.d/init.d/functions

#Sourcenetworkingconfiguration.

./etc/sysconfig/network

#Checkthatnetworkingisup.

[${NETWORKING}="no"]&&exit0

[-x$nginxd]||exit0

#Startnginxdaemonsfunctions.

start(){

if[-e$nginx_pid];then

echo"nginxalreadyrunning...."

exit1

fi

echo-n$"Starting$prog:"

daemon$nginxd-c${nginx_config}

RETVAL=$?

echo

[$RETVAL=0]&&touch/var/lock/subsys/nginx

return$RETVAL

}

#Stopnginxdaemonsfunctions.

stop(){

echo-n$"Stopping$prog:"

killproc$nginxd

RETVAL=$?

echo

[$RETVAL=0]&&rm-f/var/lock/subsys/nginx/usr/local/nginx/logs/nginx.pid

}

reload(){

echo-n$"Reloading$prog:"

#kill-HUP`cat${nginx_pid}`

killproc$nginxd-HUP

RETVAL=$?

echo

}

#Seehowwewerecalled.

case"$1"in

start)

start

;;

stop)

stop

;;

reload)

reload

;;

restart)

stop

start

;;

status)

status$prog

RETVAL=$?

;;

*)

echo$"Usage:$prog{start|stop|restart|reload|status|help}"

exit1

esac

exit$RETVAL

=======================================================

:wq!#保留加入

chmod775/etc/rc.d/init.d/nginx#付与文件实行权限

chkconfignginxon#设置开机启动

/etc/rc.d/init.d/nginxrestart#重启

servicenginxrestart

5、装置libmcrypt

cd/usr/local/src

tarzxvflibmcrypt-2.5.8.tar.gz#解压

cdlibmcrypt-2.5.8#进进目次

./configure#设置

make#编译

makeinstall#装置

6、装置php

cd/usr/local/src

tar-zvxfphp-5.4.5.tar.gz

cdphp-5.4.5

mkdir-p/usr/local/php5#创建php装置目次
./configure--prefix=/usr/local/php5--with-config-file-path=/usr/local/php5/etc--with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config--with-mysql-sock=/tmp/mysql.sock--with-gd--with-iconv--with-zlib--enable-xml--enable-bcmath--enable-shmop--enable-sysvsem--enable-inline-optimization--with-curlwrappers--enable-mbregex--enable-fpm--enable-mbstring--enable-ftp--enable-gd-native-ttf--with-openssl--enable-pcntl--enable-sockets--with-xmlrpc--enable-zip--enable-soap--without-pear--with-gettext--enable-session--with-mcrypt--with-curl#设置
make#编译

makeinstall#装置

cpphp.ini-production/usr/local/php5/etc/php.ini#复制php设置文件到装置目次

rm-rf/etc/php.ini#删除体系自带设置文件

ln-s/usr/local/php5/etc/php.ini/etc/php.ini#增加软链接

cp/usr/local/php5/etc/php-fpm.conf.default/usr/local/php5/etc/php-fpm.conf#拷贝模板文件为php-fpm设置文件

vi/usr/local/php5/etc/php-fpm.conf#编纂

user=www#设置php-fpm运转账号为www

group=www#设置php-fpm运转组为www

pid=run/php-fpm.pid#作废后面的分号

设置php-fpm开机启动

cp/usr/local/src/php-5.4.5/sapi/fpm/init.d.php-fpm/etc/rc.d/init.d/php-fpm#拷贝php-fpm到启动目次

chmod+x/etc/rc.d/init.d/php-fpm#增加实行权限

chkconfigphp-fpmon#设置开机启动

vi/usr/local/php5/etc/php.ini#编纂设置文件

找到:disable_functions=

修正为:
disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname


#列出PHP能够禁用的函数,假如某些步伐必要用到这个函数,能够删除,作废禁用。

找到:;date.timezone=

修正为:date.timezone=PRC#设置时区

找到:expose_php=On

修正为:expose_php=OFF#克制显现php版本的信息

找到:short_open_tag=Off

修正为:short_open_tag=ON#撑持php短标签

7、设置nginx撑持php

vi/usr/local/nginx/conf/nginx.conf#编纂设置文件,需做以下修正

userwwwwww;#首行user往失落正文,修正Nginx运转组为wwwwww;必需与/usr/local/php5/etc/php-fpm.conf中的user,group设置不异,不然php运转堕落

indexindex.phpindex.htmlindex.htm;#增加index.php

#passthePHPscriptstoFastCGIserverlisteningon127.0.0.1:9000

#

location~.php${

roothtml;

fastcgi_pass127.0.0.1:9000;

fastcgi_indexindex.php;

fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;

includefastcgi_params;

}

#作废FastCGIserver局部location的正文,并要注重fastcgi_param行的参数,改成$document_root$fastcgi_script_name,大概利用相对路径

/etc/init.d/nginxrestart#重启nginx

测试篇

cd/usr/local/nginx/html/#进进nginx默许网站根目次

rm-rf/usr/local/nginx/html/*#删除默许测试页

viindex.php#编纂

<?php

phpinfo();

?>

:wq!#保留加入

chownwww.www/usr/local/nginx/html/-R#设置目次一切者

chmod700/usr/local/nginx/html/-R#设置目次权限

shutdown-rnow#重启体系

在扫瞄器中翻开办事器IP地点,会看到上面的界面,设置乐成

办事器相干操纵下令

servicenginxrestart#重启nginx

servicemysqldrestart#重启mysql

/usr/local/php5/sbin/php-fpm#启动php-fpm

/etc/rc.d/init.d/php-fpmrestart#重启php-fpm

/etc/rc.d/init.d/php-fpmstop#中断php-fpm

/etc/rc.d/init.d/php-fpmstart#启动php-fpm

#############################################################################

备注:

nginx默许站点目次是:/usr/local/nginx/html/

权限设置:chownwww:www/usr/local/nginx/html/-R

MySQL数据库目次是:/data/mysql

权限设置:chownmysql.mysql-R/data/mysql

至此,CentOS6.3编译装置Nginx1.2.2+MySQL5.5.25a+PHP5.4.5完成
小知识:Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

仓酷云 发表于 2015-1-17 06:43:10

可以说自己收获很大,基本上完成了老师布置的任务,对于拔高的题目没有去做,因为我了解我的水平,没有时间和精力去做。?

若相依 发表于 2015-1-24 13:59:26

笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机

小妖女 发表于 2015-2-1 17:17:41

另外Linux上也有很多的应用软件,安装运行了这些软件后,你就可以在Linux上编辑文档、图?片,玩游戏、上网、播放多媒体文件等。

精灵巫婆 发表于 2015-2-7 13:47:11

主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。

简单生活 发表于 2015-2-22 18:11:37

随着实验课程的结束,理论课也该结束了,说实话教OS的这两位老师是我们遇到过的不错的老师(这话放这可能不太恰当).

第二个灵魂 发表于 2015-3-7 04:01:49

我是学习嵌入式方向的,这学期就选修了这门专业任选课。

老尸 发表于 2015-3-14 12:39:34

查阅经典工具书和Howto,特别是Howto是全球数以万计的Linux、Unix的经验总结非常有参考价值通常40%的问题同样可以解决。

因胸联盟 发表于 2015-3-21 09:44:55

通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。
页: [1]
查看完整版本: CentOS教程之CentOS 6.3 纯编译装置Nginx+MySQL+PHP