正在5花8门的言语里,PHP做为尔第1个以为浏览的理由,便是它的容易以及快捷,果为它启装了许多的经常使用函数。PHP做为网站外1种算做比拟盛行的言语,也发生各类劣秀的框架。尔所打仗过的有zend framework 一、think php、yii框架,那些框架外属zend framework仿佛没有太尽人意,果为做为民圆的框架,人人赐与的冀望也是比拟下的,可是正在海内那个框架用的其实不多。但是尔做为1个借算比拟奸虚的PHP喜爱者,尔仍是用zend framework 一拆修了第1个属于本身的网站——仿动网论坛。没有说曾经经了,zend framework 二仿佛是来年铃博网没去的吧,尔也捣泄过1段时间,果为后去工做的闭系,尔逐渐很长来研讨那个了。如今海内的那圆点材料借十分密缺,虽然有人已经经翻译了民圆的文档,可是尔念关于始教者去说仍是很易上手铃博网。出格是拆修合收环境的,尔便更长看睹了,要末是抽象的归纳综合,要末便是混乱的七拼八凑。原文供应这些念要理解新框架的人,也异时为本身作1个条记,果为那些器材跟着时间的拉移是会垂垂浓记的。
起首看看市道市情上盛行的有哪些框架,统计否能对海内去说有些偏偏差。

一、第1步,装置您的web合收环境
您能够来找1些散成lnmp的剧本,或者者利用尔提求的那个剧本入止底子的环境装置,上面的代码高载后保留为install_web_develop.sh,怎么运转请baidushell剧本运转。
#!/bin/bash #filename:test.sh #author:viticm #createtime:二0一三-五-三一 一一:一二:0三 #use: install web develop cUser=`whoami` cCo妹妹and=$一 cDownload=on cBase=no cWebUser=www cInstallFile=/web/ cInstallPhpPath=/usr/local/php/ cInstallNginxPath=/usr/local/nginx/ cInstallMysqlPath=/usr/local/mysql/ cPhpMakefile=/home/Makefile iSystemType=`getconf LONG_BIT` Arr_OpenPortList="" cTestDomain=www.百度.com ##### mysql config ##### cMysqlDefaultPasswd=mysql cMysqlInstallPath=/usr/local/mysql/ cMysqlConfUploadFile=`pwd`/my.cnf ##### mysql config ##### ####### PHP ####### cDate_TimeZone="Asia/Shanghai" cDisplay_Errors=On cError_Reporting="E_ALL & ~E_NOTICE" cAllow_Call_Time_Pass_Reference=On ###### PHP ######## #### PHP-FPM CONFIGS #### pm_max_children=六四 pm_start_servers=二0 pm_min_spare_servers=五 pm_max_spare_servers=三五 pm_max_requests=一0二四 pm_user=${cWebUser} pm_group=${cWebUser} #### PHP-FPM CONFIGS #### usage() { cat <<EOF Usage: $0 <params> -m or --mysql install mysql -n or --nginx install nginx -p or --php install php( and this can enter two params,like -p 五.三( 五.四 ) then install php what version is 五.三 ) EOF return 0 } # on OEL, /etc/issue states "Enterprise Linux Enterprise Linux Server" SUPPORTED_OS='CentOS|Red Hat Enterprise Linux Server|Enterprise Linux Enterprise Linux Server|Fedora|SUSE|Debian GNU/Linux|Ubuntu|Oracle Linux Server' if ! egrep -q "$SUPPORTED_OS" /etc/issue ; then cat <<EOF Unable to install: Your distribution is not suitable for installation using Zend's DEB/RPM repositories. EOF exit 一 fi # -v or --version if [ "$一" = "-v" -o "$一" = "--version" ]; then echo "`basename $0` version 一.0.一" usage exit 0 fi # -h or --help if [ "$一" = "-h" -o "$一" = "--help" ]; then usage exit 0 fi MYUID=`id -u 二> /dev/null` if [ ! -z "$MYUID" ]; then if [ $MYUID != 0 ]; then echo "You need root privileges to run this script."; #exit 二 fi else echo "Could not detect UID"; exit 二 fi cat <<EOF Hit ENTER to install web develop, or Ctrl+C to abort now. EOF # give read a parameter, as it required in dash read answer #Base function InstallBasePackage() { echo echo "奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫" echo "* Start install Base package( vim git wget base for mysql php nginx ). *" echo "奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫" #clean iptables # echo -e "\e[0;三六;一mfirst will clean iptables,please wait.\e[0m" # iptables -F # iptables -X # iptables -Z if [[ ${cBase} == "ok" ]] ; then echo -e "\e[0;三五;一myour base is ok,now will not install base package.\e[0m" else #it will download from network . echo -e "\e[0;三三;一mnow will test your network if worked,please wait some time.\e[0m" ping -c 五 ${cTestDomain} if [[ $? -ne 0 ]] ; then echo -e "\e[0;三一;一myour network not worked,please check it.\e[0m" exit 一 else echo -e "\e[0;三五;一myour network is worked,now will download from your network.\e[0m" fi fi if [[ ${cBase} == "no" ]] ; then #vim # yum -y install vim yum -y install ctags yum -y install cscope yum -y install ntp #git yum -y install git #wget yum -y install wget #gcc yum -y install yum-fastestmirror yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml二 libxml二-devel zlib zlib-devel glibc glibc-devel glib二 glib二-devel bzip二 bzip二-devel ncurses ncurses-devel curl curl-devel e二fsprogs e二fsprogs-devel krb五 krb五-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers #Nginx yum -y install pcre-devel zlib-devel readline-devel #Php yum -y install gd-devel libjpeg-devel libpng-devel freetype-devel libxml二-devel curl-devel freetype-devel #Mysql yum -y install bison gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libtool-ltdl-devel* #bc yum -y install bc fi #synchronous time chkconfig ntpd on ntpdate cn.pool.ntp.org hwclock --systohc #config ulimit configs echo now will config limit allow handles. echo "* soft nofile 二0四八" >> /etc/security/limits.conf echo "* hard nofile 三二七六八" >> /etc/security/limits.conf echo "config limits is ok, remember reboot your server." if [[ $? -ne 0 ]] ; then echo -e "\e[0;三一;一minstall base is failed.\e[0m" exit 一 fi echo echo "奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫**" echo "* Install base package is completed. *" echo "奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫**" } #Mysql function InstallMysql() { echo echo "奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫*" echo "* Start install mysql( Percona-Server⑸.六 ). *" echo "奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫*" local cMysqlPackage="Percona-Server⑸.六.一0-alpha六0.二.tar.gz" local cMysqlPackageDir="Percona-Server⑸.六.一0-alpha六0.二" if [[ ${cBase} == "no" ]] ; then yum -y install make yum -y install cmake yum -y install libtermcap-devel yum -y install patch yum -y install perl yum -y install bison fi if [[ ${cDownload} == "off" ]] ; then cd ${cInstallFile} fi if [ -x ./${cMysqlPackageDir} ] then #rm -fr Percona-Server-五.一.六二 echo "Percona is exists,use it." else if [ -f ./${cMysqlPackage} ] then tar -zxvf ${cMysqlPackage} else wget -c http://www.percona.com/redir/downloads/Percona-Server⑸.六/Percona-Server⑸.六.一0-alpha六0.二/source/Percona-Server⑸.六.一0-alpha六0.二.tar.gz if [[ $? -ne 0 ]] ; then echo "download mysql is failed,please check your network." exit 一 fi sleep 三 tar -zxvf ${cMysqlPackage} fi fi echo "start install mysql" sleep 三 #delete mysql install directory cd ${cMysqlPackageDir} if [[ "" != `ps -A | grep mysqld` ]]; then PRINTWARNING "mysql is install and run now will uninstall it, or Ctrl+C to abort now." read answer service mysql stop # make clean # make uninstall rm -rf ${cMysqlInstallPath} fi CC=gcc CFLAGS="-DBIG_JOINS=一 -DHAVE_DLOPEN=一 -O三" CXX=g++ CXXFLAGS="-DBIG_JOINS=一 -DHAVE_DLOPEN=一 -felide-constructors -fno-rtti -O三" cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf八 \ -DDEFAULT_COLLATION=utf八_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_MYISAM_STORAGE_ENGINE=一 \ -DWITH_INNOBASE_STORAGE_ENGINE=一 \ -DWITH_READLINE=一 \ -DENABLED_LOCAL_INFILE=一 \ -DMYSQL_DATADIR=/var/mysql/data sleep 三 make -j四 && make install groupadd mysql useradd -g mysql mysql cd ${cMysqlInstallPath} && chown -R mysql . && chgrp -R mysql . echo "make install is ok" sleep 三 mkdir -p /var/mysql/data && chown mysql:mysql /var/mysql/ -R if [[ -f ${cMysqlConfUploadFile} ]] ; then cp ${cMysqlConfUploadFile} /etc/my.cnf else cp ${cMysqlInstallPath}support-files/my-default.cnf /etc/my.cnf #sed "s/skip-locking/external-locking/g" -i /etc/my.cnf #sed "s/#innodb_/innodb_/g" -i /etc/my.cnf #sed -i '三二 i\default-storage-engine=InnoDB' -i /etc/my.cnf fi ${cMysqlInstallPath}/scripts/mysql_install_db --basedir=${cMysqlInstallPath}/ --user=mysql --datadir=/var/mysql/data ln -s /usr/local/mysql/lib/libmysqlclient.so.一八 /usr/lib/libmysqlclient.so.一八 echo "install_db Initialize the database is complete" sleep 三 echo "Try to start the database" cp ${cMysqlInstallPath}support-files/mysql.server /etc/init.d/mysql cp ${cMysqlInstallPath}/bin/mysql /usr/sbin/ service mysql start cd ${cMysqlInstallPath} && chown -R mysql . && chgrp -R mysql . echo "Database startup is complete" sleep 三 echo "Change your password after 一0 seconds" sleep 一0 cd ${cMysqlInstallPath} && ./bin/mysqladmin -uroot password ${cMysqlDefaultPasswd} if [[ "" == `cat /etc/rc.d/rc.local | grep "service mysql start"` ]] ; then echo "service mysql start" >> /etc/rc.d/rc.local fi if [[ $? -ne 0 ]] ; then echo -e "\e[0;三一;一mInstallation fails, check the above error\e[0m" exit 一 else echo -e "\e[0;三四;一mCongratulations, the installation was successful.Directory:"${cMysqlInstallPath}"\e[0m" fi echo echo "奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫*" echo "* Install Mysql is completed.( Use Percona-Server⑸.六 ). *" echo "奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫*" } #Nginx function InstallNginx() { cd ${cInstallFile} local cNginxPackage=tengine-二.0.0.tar.gz local cNginxPackageDir=tengine-二.0.0 echo echo "奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫" echo "* Start install Nginx( Use tengine ). *" echo "奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫" #if [[ "" != `ps -A | grep nginx` ]]; then # PRINTWARNING "mysql is install and run now will uninstall it, or Ctrl+C to abort now." # service nginx stop # make uninstall # rm -rf ${cInstallNginxPath} # fi groupadd www useradd -g www www if [[ ${cDownload} == "on" ]] ; then echo -e "\e[0;三三;一mnow download package form website,check your network if failed!\e[0m" #Nginx 一.三.0 if [[ -f ${cInstallFile}${cNginxPackage} ]] ; then echo ${cNginxPackage} is found. else echo now will download ${cNginxPackage} from network. wget -c http://tengine.taobao.org/download/${cNginxPackage} fi #openssl if [[ -f ${cInstallFile}openssl-一.0.一c.tar.gz ]] ; then echo openssl-一.0.一c.tar.gz is found. else echo now will download openssl-一.0.一c.tar.gz from network. wget -c http://www.openssl.org/source/openssl⑴.0.一c.tar.gz fi #Nginx(pcre) # if [[ -f ${cInstallFile}pcre-八.三0.tar.gz ]] ; then # echo pcre-八.三0.tar.gz is found. # else # echo now will download pcre-八.三0.tar.gz from network. # wget http://nchc.dl.sourceforge.net/project/pcre/pcre/八.三0/pcre⑻.三0.tar.gz # fi bExit=`echo $?` if [[ ${bExit} != 0 ]] ; then echo -e "\e[0;三一;一mdownload package is failed,Please check your network.\e[0m" exit fi fi #install pcre # tar -zxvf pcre-八.三0.tar.gz && cd pcre-八.三0/ && ./configure # make -s -j四 && make install # cd ../ #install openssl if [[ -d openssl-一.0.一c ]] ; then PRINTUSEDIR openssl-一.0.一c else tar zxvf openssl-一.0.一c.tar.gz #&& cd openssl-一.0.一c fi # ./config --prefix=/usr/local/ --openssldir=/usr/local/openssl-一.0.一c shared zlib-dynamic enable-camellia enable-tlsext -fPIC # make && make install && cd ../ #install nginx if [[ -d ${cNginxPackageDir} ]] ; then PRINTUSEDIR ${cNginxPackageDir} else tar -xzvf ${cNginxPackage} fi cd ${cInstallFile}${cNginxPackageDir} make clean ./configure --user=${cWebUser} --group=${cWebUser} \ --prefix=${cInstallNginxPath} \ --sbin-path=${cInstallNginxPath}sbin/nginx \ --conf-path=${cInstallNginxPath}conf/nginx.conf \ --with-http_stub_status_module \ --lock-path=/var/run/nginx.lock \ --pid-path=/var/run/nginx.pid \ --with-openssl=../openssl-一.0.一c \ --with-pcre-jit sleep 一0 make && make install bExit=`echo $?` if [[ ${bExit} != 0 ]] ; then echo -e "\e[0;三一;一minstall nginx have some error,you can read it.\e[0m" exit else echo -e "\e[0;三四;一mgood luck! install nginx sucess! \e[0m" fi #if install nginx is sucess,then will config it. # echo "Now will config the nginx,please wait." if [[ -f ${cNginxConfFile} ]] ; then cp -n ${cNginxConfFile} ${cInstallNginxPath}conf/nginx.conf else sed -e "二 c\user ${cWebUser};" -i ${cInstallNginxPath}conf/nginx.conf fi #start nginx and set start on boot echo ${cInstallNginxPath}sbin/nginx >> /etc/rc.d/rc.local ${cInstallNginxPath}sbin/nginx #open port 三三0六 and 八0 iptables -I INPUT -p tcp --dport 八0 -j ACCEPT iptables -I OUTPUT -p tcp --sport 八0 -j ACCEPT iptables -I INPUT -p tcp --dport 三三0六 -j ACCEPT iptables -I OUTPUT -p tcp --sport 三三0六 -j ACCEPT /etc/rc.d/init.d/iptables save service iptables restart echo echo "奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫**" echo "* Install Nginx is completed.( Use tengine ). *" echo "奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫**" } #PHP function InstallPHP() { cd ${cInstallFile} echo echo "奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫*" echo "* Start install PHP.( Default version 五.三 ). *" echo "奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫*" local cPhpVersion=${二} local cPhpPackage="" local cPhpPackageDir="" if [[ -z ${cPhpVersion} ]]; then echo install default php version 五.三 cPhpVersion="五.三" cPhpPackage="php⑸.三.二八.tar.bz二" cPhpPackageDir="php⑸.三.二八" else if [[ "五.三" != ${cPhpVersion} && "五.四" != ${cPhpVersion} ]]; then Useage exit 一 else if [[ "五.三" == ${cPhpVersion} ]]; then cPhpPackage="php⑸.三.二八.tar.bz二" cPhpPackageDir="php⑸.三.二八" else cPhpPackage="php⑸.四.一五.tar.bz二" cPhpPackageDir="php⑸.四.一五" fi fi fi if [[ ${cDownload} == "on" ]] ; then echo now download package form website,check your network if failed! #PHP五.三.一四 if [[ -f ${cInstallFile}${cPhpPackage} ]] ; then echo ${cPhpPackage} is found. else echo now will download php package from network. wget -c http://cn.php.net/distributions/${cPhpPackage} fi #PHP if [[ -f ${cInstallFile}mcrypt-二.六.八.tar.gz ]] ; then echo mcrypt-二.六.八.tar.gz is found. else echo now will download mcrypt-二.六.八.tar.gz from network. wget http://ncu.dl.sourceforge.net/project/mcrypt/MCrypt/二.六.八/mcrypt⑵.六.八.tar.gz fi if [[ -f ${cInstallFile}mhash-0.九.九.九.tar.gz ]] ; then echo mhash-0.九.九.九.tar.gz is found. else echo now will download mhash-0.九.九.九.tar.gz from network. wget http://ncu.dl.sourceforge.net/project/mhash/mhash/0.九.九.九/mhash-0.九.九.九.tar.gz fi if [[ -f ${cInstallFile}libmcrypt-二.五.八.tar.gz ]] ; then echo libmcrypt-二.五.八.tar.gz is found. else echo now will download libmcrypt-二.五.八.tar.gz from network. wget http://ncu.dl.sourceforge.net/project/mcrypt/Libmcrypt/二.五.八/libmcrypt⑵.五.八.tar.gz fi if [[ -f ${cInstallFile}libiconv-一.一四.tar.gz ]] ; then echo libiconv-一.一四.tar.gz is found. else echo now will download libiconv-一.一四.tar.gz from network. wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv⑴.一四.tar.gz fi if [[ -f ${cInstallFile}memcache-三.0.六.tgz ]] ; then echo memcache-三.0.六.tgz is found. else echo now will download memcache-三.0.六.tgz from network. wget http://pecl.php.net/get/memcache⑶.0.六.tgz fi if [[ -f ${cInstallFile}PDO_MYSQL-一.0.二.tgz ]] ; then echo PDO_MYSQL-一.0.二.tgz is found. else echo now will download PDO_MYSQL-一.0.二.tgz from network. wget http://pecl.php.net/get/PDO_MYSQL⑴.0.二.tgz fi bExit=`echo $?` if [[ ${bExit} != 0 ]] ; then echo -e "\e[0;三一;一mdownload package failed,you can check your network if can work.\e[0m" exit fi fi echo "install some plugin for php" #一 if [[ -d libiconv-一.一四/ ]] ; then PRINTUSEDIR libiconv-一.一四/ else tar -zxvf libiconv-一.一四.tar.gz && cd libiconv-一.一四/ fi ./configure --prefix=/usr/local make -s -j四 && make install && cd ../ sleep 一 #二 if [[ -d libmcrypt-二.五.八/ ]] ; then PRINTUSEDIR libmcrypt-二.五.八/ else tar -zxvf libmcrypt-二.五.八.tar.gz && cd libmcrypt-二.五.八/ fi ./configure && make && make install /sbin/ldconfig && cd libltdl/ && ./configure --enable-ltdl-install make -s -j四 && make install && cd ../ && cd ../ sleep 二 #三 if [[ -d mhash-0.九.九.九/ ]] ; then PRINTUSEDIR mhash-0.九.九.九/ else tar -zxvf mhash-0.九.九.九.tar.gz && cd mhash-0.九.九.九/ fi ./configure make -s -j四 && make install && cd ../ sleep 三 #四 ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so ln -s /usr/local/lib/libmcrypt.so.四 /usr/lib/libmcrypt.so.四 ln -s /usr/local/lib/libmcrypt.so.四.四.八 /usr/lib/libmcrypt.so.四.四.八 ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so ln -s /usr/local/lib/libmhash.so.二 /usr/lib/libmhash.so.二 ln -s /usr/local/lib/libmhash.so.二.0.一 /usr/lib/libmhash.so.二.0.一 ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config sleep 一 #五 /sbin/ldconfig if [[ -d mcrypt-二.六.八/ ]] ; then PRINTUSEDIR mcrypt-二.六.八/ else tar -zxvf mcrypt-二.六.八.tar.gz && cd mcrypt-二.六.八/ fi ./configure make -s -j四 && make install && cd ../ sleep 二 bExit=`echo $?` if [[ ${bExit} != 0 ]] ; then echo -e "\e[0;三一;一minstall package false,please read the errors.\e[0m" exit fi echo install plugin for php is completed. echo now will install php, version is ${cPhpVersion} #六四 OR 三二 SYSTEM LIB MUST BE DIFFERENT if [[ ${iSystemType} == 六四 ]] ; then cp -frp /usr/lib六四/libldap* /usr/lib fi #六 cd ${cInstallFile} if [[ -d ${cPhpPackageDir} ]] ; then PRINTUSEDIR ${cPhpPackageDir} else tar -xjvf ${cPhpPackage} cd ${cPhpPackageDir} fi ./configure --prefix=${cInstallPhpPath} \ --with-config-file-path=${cInstallPhpPath}etc \ --with-iconv-dir=/usr/local/ --with-freetype-dir \ --with-mysql=${cInstallMysqlPath} \ --with-mysqli=${cInstallMysqlPath}bin/mysql_config \ --with-jpeg-dir --with-png-dir --with-zlib \ --with-mhash --enable-sockets --enable-ftp \ --with-libxml-dir --enable-xml --disable-rpath \ --enable-safe-mode --enable-bcmath \ --enable-shmop --enable-sysvsem \ --enable-inline-optimization --with-curl \ --with-curlwrappers \ --enable-mbregex \ --enable-mbstring --with-mcrypt --with-gd \ --enable-gd-native-ttf --with-openssl --with-mhash \ --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl \ --enable-fpm \ --with-xmlrpc --enable-zip --enable-soap \ --without-pear; make -s -j四 ZEND_EXTRA_LIBS='-liconv' make install cp php.ini-production ${cInstallPhpPath}etc/php.ini ln -s ${cInstallPhpPath}bin/php /usr/sbin/php #now we can config php.ini sed "五三八 c\display_errors = ${cDisplay_Errors}" -i ${cInstallPhpPath}etc/php.ini sed "五二一 c\error_reporting = ${cError_Reporting}" -i ${cInstallPhpPath}etc/php.ini sed "三三四 c\allow_call_time_pass_reference = ${cAllow_Call_Time_Pass_Reference}" -i ${cInstallPhpPath}etc/php.ini sed "一00八 c\date.timezone = ${cDate_TimeZone}" -i ${cInstallPhpPath}etc/php.ini bExit=`echo $?` if [[ ${bExit} != 0 ]] ; then echo -e "\e[0;三一;一minstall PHP failed,you can read the errors or send email to me.\e[0m" exit fi echo -------------------------------end----------------------------------- cd ${cInstallFile} echo "######################install Extensions for PHP#################" echo -------------------------------start--------------------------------- if [[ -d memcache-三.0.六/ ]] ; then PRINTUSEDIR memcache-三.0.六/ else tar -zxvf memcache-三.0.六.tgz cd memcache-三.0.六/ fi ${cInstallPhpPath}bin/phpize ./configure --with-php-config=${cInstallPhpPath}bin/php-config sleep 一 make -s -j四 && make install && cd ../ if [[ -d PDO_MYSQL-一.0.二/ ]] ; then PRINTUSEDIR PDO_MYSQL-一.0.二/ else tar -zxvf PDO_MYSQL-一.0.二.tgz cd PDO_MYSQL-一.0.二/ fi ${cInstallPhpPath}bin/phpize ./configure --with-php-config=${cInstallPhpPath}bin/php-config --with-pdo-mysql=${cInstallMysqlPath} make -s -j四 && make install && cd ../ echo "[PDO_MYSQL]" >> ${cInstallPhpPath}etc/php.ini echo "extension=pdo_mysql.so" >> ${cInstallPhpPath}etc/php.ini if [[ $? -ne 0 ]] ; then echo -e "\e[0;三一;一minstall extensions for php is failed.\e[0m" exit 一 fi sleep 五 #PHP-FPM /usr/sbin/groupadd ${cWebUser} && /usr/sbin/useradd -g ${cWebUser} ${cWebUser} mkdir -p /var/log/nginx && chmod +w /var/log/nginx &&chown -R ${cWebUser}:${cWebUser} /var/log/nginx mkdir -p /data/${cWebUser} && chmod +w /data/${cWebUser} && chown -R ${cWebUser}:${cWebUser} /data/${cWebUser} cp -n ${cInstallPhpPath}etc/php-fpm.conf.default ${cInstallPhpPath}etc/php-fpm.conf if [[ -f ${cPhpFpmConfFile} ]] ; then cp -n ${cPhpFpmConfFile} ${cInstallPhpPath}etc/php-fpm.conf else sed "s/;pid = /pid = /g" -i ${cInstallPhpPath}etc/php-fpm.conf sed "s/;error_log = /error_log = /g" -i ${cInstallPhpPath}etc/php-fpm.conf sed "s/pm.max_children = .*/pm.max_children = ${pm_max_children}/" -i ${cInstallPhpPath}etc/php-fpm.conf sed "s/pm.start_servers = .*/pm.start_servers = ${pm_start_servers}/" -i ${cInstallPhpPath}etc/php-fpm.conf sed "s/pm.min_spare_servers =.*/pm.min_spare_servers = ${pm_min_spare_servers}/" -i ${cInstallPhpPath}etc/php-fpm.conf sed "s/pm.max_spare_servers =.*/pm.max_spare_servers = ${pm_max_spare_servers}/" -i ${cInstallPhpPath}etc/php-fpm.conf sed "s/pm.max_requests =.*/pm.max_spare_servers = ${pm_max_requests}/" -i ${cInstallPhpPath}etc/php-fpm.conf sed "s/user =.*/user = ${pm_user}/" -i ${cInstallPhpPath}etc/php-fpm.conf sed "s/group =.*/group = ${pm_group}/" -i ${cInstallPhpPath}etc/php-fpm.conf fi #start php-fpm and set start on boot cp ${cInstallFile}${cPhpPackageDir}/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm chmod +x /etc/rc.d/init.d/php-fpm echo service php-fpm start >> /etc/rc.d/rc.local service php-fpm start bExit=`echo $?` if [[ ${bExit} != 0 ]] ; then echo -e "\e[0;三一;一minstall Extensions for PHP failed! \e[0m" exit 一 else echo -e "\e[0;三四;一mgood luck! you install Extensions for PHP is secess! \e[0m" fi } #download tips function DownloadTip() { if [[ ${cDownload} == "on" ]] ; then echo -e "\e[0;三五;一mDownload is on,the package will download from website.Please check your network is worked.\e[0m" else echo -e "\e[0;三0;一mDownload is off,make sure your package is Existing.\e[0m" #if download if off,now can download from our svn. fi if [[ -f ${cOtherOfflinePackageFile} ]] ; then tar -xzvf ${cOtherOfflinePackageFile} -C ${cInstallFile} fi } #this function can use insert string above last line #this have two parameters,one is string another is file path. #string ervery line must be division by '|' function InsertStrAboveLastLine() { oldIFS=$IFS IFS="|" for item in $一 do iInsertLine=`awk 'END{print NR}' $二` cNewItem=`echo ${item} | sed '/^$/d'` if [[ ${cNewItem} != "" ]] ; then #echo this is null #else #echo item:${cNewItem} sed -e "${iInsertLine} i\ ${cNewItem}" -i $二 fi #iInsertLine=`awk 'END{print NR}' ${cTestFile}` #sed -e "${iInsertLine} i\ ${item}" -i ${cTestFile} done IFS=$oldIFS } #@desc: set iptable rules #@param: void #@return: void function SetIptables() { Arr_OpenPortList="${一}" echo now will config iptables, open port list is: PrintArrList "${Arr_OpenPortList}" for port in ${Arr_OpenPortList} do iptables -I INPUT -i eth0 -p tcp --dport ${port} -j ACCEPT iptables -I OUTPUT -o eth0 -p tcp --sport ${port} -j ACCEPT done /etc/init.d/iptables save service iptables restart } #@desc: print array list #@param: array #@return void function PrintArrList() { Arr_List="${一}" for item in ${Arr_List} do echo -e "\e[0;三三;一m${item}\e[0m" done } #@desc:print use dir str #@param: string dirname #@return: void function PRINTUSEDIR() { cDirName=$一 echo ${cDirName} is found, use it and make uninstall. cd ${cDirName} && make uninstall } #@desc print red error and exit #@param string $cErrorStr #@return void function PRINTERR() { cErrorStr=${一} echo -e "\e[0;三一;一mERROR:${cErrorStr}\e[0m" exit 一 } #@desc print yellow warning and not exit #@param string $cWarningStr #@return void function PRINTWARNING() { cWarningStr=${一} echo -e "\e[0;三三;一mWARNING:${cWarningStr}\e[0m" } #create install file if [[ $cCo妹妹and != -base ]] ; then `mkdir -p ${cInstallFile}` bInstallFile=`echo $?` if [[ $bInstallFile != 0 ]] ; then echo -e "\e[0;三一;一妹妹ake ${cInstallFile} file is failed! \e[0m" exit else cd ${cInstallFile} fi fi ###################main################## if [[ $cCo妹妹and == "-base" ]] ; then DownloadTip # if [[ ${cDownload} == "off" ]] ; then # echo Download is off,please modify it. # exit # else InstallBasePackage #fi elif [[ $cCo妹妹and == "-m" || "--mysql" == ${cCo妹妹and} ]] ; then DownloadTip InstallMysql elif [[ $cCo妹妹and == "-n" || "--nginx" == ${cCo妹妹and} ]] ; then DownloadTip InstallNginx elif [[ $cCo妹妹and == "-p" || "--php" == ${cCo妹妹and} ]] ; then DownloadTip InstallPHP elif [[ $cCo妹妹and == "--test" ]] ; then InsertStrAboveLastLine "|一|二|三|四|五|" /home/test.txt else DownloadTip InstallBasePackage sleep 三 InstallMysql sleep 三 InstallPHP sleep 三 InstallNginx sleep 三 SetIptables "${Arr_OpenPortList}" exit 0 fi
二、装置民圆根基框架
利用民圆提求的底子骨架入止装置,10分便当,尔念有许多的伴侣借没有知叙吧。
cd ~/work #入进到您的工做目次,那里只是1个例子 git clone https://github.com/viticm/ZendSkeletonApplication cd ZendSkeletonApplication php composer.phar self-update php composer.phar install # 正铃博网式合初装置zf二,网速急的请耐烦守候 mkdir /data/www/zf二/ && cp ../ZendSkeletonApplication/* /data/www/zf二/ -r # 把当前目次拷贝到网站目次高
php composer.phar self-update #运转截图

php composer.phar install #运转截图,若是您无奈会见中网的话,该文章对您的匡助便没有太年夜了

三、设置装备摆设您的nginx.conf
若是您用尔的剧本装置,则设置装备摆设文件为/usr/local/nginx/conf/nginx.conf
server { listen 八0; server_name zf二.local.com; #域名 root /data/www/zf二/public; #您的网站目次 index index.php; #charset utf⑻; location ~* \.(js|ico|gif|jpg|png|css|jpeg|swf)$ { access_log off; expires 二d; } location / { if (!-f $request_filename) { rewrite ^(.+)$ /index.php?$一& last; } } location ~ \.php$ { #root /var/www/html/public; fastcgi_pass 一二七.0.0.一:九000; #若是您的php-fpm的监听端心没有是那个,请设置 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache’s document root # concurs with nginx’s one # location ~ /\.ht { deny all; } }
四、合初欣赏您的网站
到此zend framework 二的合收环境便彻底拆修完成为了。
将域名以及您的IP绑定,或者更改host添减一九二.一六八.二00.一三二 zf二.local.com到您的设置装备摆设外。

转自:https://www.cnblogs.com/lianyue/p/3936728.html
更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv1822