⑴ 安裝wordpress使用tengine怎麼樣
後台之前使用的Tengine+HHVM環境, 前段時間更新了 HHVM 之後,感覺訪問 Blog 的速度慢了很多,不知道是不是與使用的某些插件不兼容的原因,正好 Aliyun 添加了 Ubuntu14.04鏡像,趁這次更新系統的機會,重新採用Tengine+php-FPM的架構來運行 Wordpress.下面記錄一下安裝的過程.
備份好數據之後,在 Aliyun 後台更新系統盤,選擇 Ubuntu 14.04這個鏡像.
完成之後,登錄到伺服器.
先進行一些系統參數的優化設置.
#Synchronization timerm -rf /etc/localtimeln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeapt-get install -y ntpdatentpdate -u pool.ntp.orgdate#Disable Selinuxif [ -s /etc/selinux/config ]; thensed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/configfiif [ -s /etc/ld.so.conf.d/libc6-xen.conf ]; thensed -i 's/hwcap 1 nosegneg/hwcap 0 nosegneg/g' /etc/ld.so.conf.d/libc6-xen.conffi#set sysctl\cp /etc/sysctl.conf /etc/sysctl.conf.baksed -i 's/net\.ipv4\.tcp_syncookies.*/net\.ipv4\.tcp_syncookies = 1/' /etc/sysctl.confif cat /etc/sysctl.conf | grep "aliyun web add" > /dev/null ;thenecho ""elsecat >> /etc/sysctl.conf < /dev/null;then echo ""else echo "* soft nofile 65535" >> /etc/security/limits.conffiif cat /etc/security/limits.conf | grep "* hard nofile 65535" > /dev/null ;then echo ""else echo "* hard nofile 65535" >> /etc/security/limits.conffi
然後更新系統,安裝必要的系統組件.
apt-get updateapt-get autoremove -yapt-get -fy installapt-get install -y build-essential gcc g++ makefor packages in build-essential gcc g++ make cmake automake autoconf re2c wget cron bzip2 libzip-dev libperl-dev libc6-dev iptables file lio* rcconf flex vim nano bison m4 gawk less make cpp binutils diffutils unzip tar bzip2 unrar p7zip libncurses5-dev libncurses5 libncurses5-dev libncurses5-dev libtool libevent-dev libpcre3 libpcre3-dev libpcrecpp0 zlibc openssl libsasl2-dev libltdl3-dev libltdl-dev libmcrypt-dev zlib1g zlib1g-dev libbz2-1.0 libbz2-dev libglib2.0-0 libglib2.0-dev libpng3 libjpeg62 libjpeg62-dev libpng-dev libpng12-0 libpng12-dev curl libcurl3 libmhash2 libmhash-dev libpq-dev libpq5 gettext libncurses5-dev libjpeg-dev libxml2-dev libfreetype6 libfreetype6-dev libssl-dev libcurl3 libcurl4-openssl-dev libcurl4-gnutls-dev mcrypt libcap-dev diffutils ca-certificates debian-keyring debian-archive-keyring;do apt-get install -y $packages --force-yes;apt-get -fy install;apt-get -y autoremove; done
接著下載Tengine並編譯安裝,我使用的是截至到當前的最新版本2.0.3.
wget -c http://tengine.taobao.org/download/tengine-2.0.3.tar.gztar zxf tengine-2.0.3.tar.gzcd tengine-2.0.3./configure --prefix=/usr/local/nginx \--user=www-data \--group=www-data \--with-http_stub_status_mole \--without-http-cache \--with-http_ssl_mole \--with-http_gzip_static_mole \--with-http_concat_mole CPU_NUM=$(cat /proc/cpuinfo | grep processor | wc -l)if [ $CPU_NUM -gt 1 ];then make -j$CPU_NUMelse makefimake install
Tengine安裝過程還是很快的,用不了幾分鍾,就安裝完成.接著下載一個 Tengine 的控制腳本,用於使用 service nginx start/stop/reload 等操作,並添加nginx 開機啟動.
wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginxchmod +x /etc/init.d/nginxservice nginx status # to poll for current statussudo update-rc.d -f nginx defaults
至此,Tengine已經安裝結束,使用 service nginx start啟動Tengine之後,使用瀏覽器訪問網站就可以看到相關的 Welcome 界面了.接下來我們開始安裝 PHP.同樣,我使用的也是當前的最新版本,PHP 5.5.17.
wget -c http://cn2.php.net/distributions/php-5.5.17.tar.gztar zxf php-5.5.17.tar.gzcd php-5.5.17./configure --prefix=/usr/local/php \--with-config-file-path=/usr/local/php/etc \--enable-fpm \--with-fpm-user=www-data \--with-fpm-group=www-data \--with-mysql=mysqlnd \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \--enable-opcache \--enable-static \--enable-inline-optimization \--enable-sockets \--enable-wddx \--enable-zip \--enable-calendar \--enable-bcmath \--enable-soap \--with-zlib \--with-iconv \--with-gd \--with-xmlrpc \--enable-mbstring \--with-curl \--enable-ftp \--with-mcrypt \--disable-ipv6 \--disable-debug \--with-openssl \--disable-maintainer-zts \--disable-fileinfoCPU_NUM=$(cat /proc/cpuinfo | grep processor | wc -l)echo "make php"if [ $CPU_NUM -gt 1 ];then make ZEND_EXTRA_LIBS='-liconv' -j$CPU_NUMelse make ZEND_EXTRA_LIBS='-liconv'fimake install
PHP的編譯時間比Tengine要長一些,耐心等待 PHP 編譯安裝完全之後,需要進入一些軟鏈接操作.同時對 php.ini 和 php-fpm.conf 進行一些優化設置.
ln -s /usr/local/php/bin/php /usr/bin/phpln -s /usr/local/php/bin/phpize /usr/bin/phpizeln -s /usr/local/php/sbin/php-fpm /usr/bin/php-fpmmkdir -p /usr/local/php/etccp php.ini-proction /usr/local/php/etc/php.inised -i 's@expose_php = On@expose_php = Off@g' /usr/local/php/etc/php.inised -i 's/post_max_size = 8M/post_max_size = 50M/g' /usr/local/php/etc/php.inised -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/g' /usr/local/php/etc/php.inised -i 's/;date.timezone =/date.timezone = PRC/g' /usr/local/php/etc/php.inised -i 's/short_open_tag = Off/short_open_tag = On/g' /usr/local/php/etc/php.inised -i 's/; cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /usr/local/php/etc/php.inised -i 's/; cgi.fix_pathinfo=0/cgi.fix_pathinfo=0/g' /usr/local/php/etc/php.inised -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /usr/local/php/etc/php.inised -i 's/max_execution_time = 30/max_execution_time = 300/g' /usr/local/php/etc/php.inised -i 's/register_long_arrays = On/;register_long_arrays = On/g' /usr/local/php/etc/php.inised -i 's/magic_quotes_gpc = On/;magic_quotes_gpc = On/g' /usr/local/php/etc/php.inised -i 's/disable_functions =.*/disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsockopen/g' /usr/local/php/etc/php.ini#enable opcachesed -i '/;opcache.enable=0/i\zend_extension=opcache.so' /usr/local/php/etc/php.inised -i 's/;opcache.enable=0/opcache.enable=1/g' /usr/local/php/etc/php.inised -i 's/;opcache.enable_cli=0/opcache.enable_cli=1/g' /usr/local/php/etc/php.inised -i 's/;opcache.memory_consumption=64/opcache.memory_consumption=128/g' /usr/local/php/etc/php.inised -i 's/;opcache.interned_strings_buffer=4/opcache.interned_strings_buffer=8/g' /usr/local/php/etc/php.inised -i 's/;pcache.max_accelerated_files=2000/pcache.max_accelerated_files=4000/g' /usr/local/php/etc/php.inised -i 's/;opcache.revalidate_freq=2/opcache.revalidate_freq=60/g' /usr/local/php/etc/php.inised -i 's/;opcache.fast_shutdown=0/opcache.fast_shutdown=1/g' /usr/local/php/etc/php.inicat >/usr/local/php/etc/php-fpm.conf<<EOF[global]pid = /usr/local/php/var/run/php-fpm.piderror_log = /usr/local/php/var/log/php-fpm.loglog_level = notice[www]listen = /var/run/php5-fpm.socklisten.backlog = -1listen.allowed_clients = 127.0.0.1listen.owner = www-datalisten.group = www-datalisten.mode = 0666user = www-datagroup = www-datapm = dynamicpm.max_children = 10pm.start_servers = 2pm.min_spare_servers = 1pm.max_spare_servers = 6request_terminate_timeout = 100request_slowlog_timeout = 0slowlog = var/log/slow.logEOFcp ./php-5.5.17/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpmchmod +x /etc/init.d/php-fpm
最後,掛載備份的數據盤.從備份盤恢復網站數據,並修改 Nginx 的配置,恢復網站的正常訪問.
mkdir -p /backupecho '/dev/xvdb1 /backup ext4 barrier=0 0 0' >> /etc/fstab mount -a
我已經將上面的過程編寫成了一個腳本,可下載後查看(install.zip),也可以直接下載到伺服器運行.完成之後,只需要添加 vhost的配置reload 一下 nginx 就可以正常訪問了.
需要說明的是由於我使用了阿里雲的 RDS,所以沒有在伺服器上安裝 MySql.
⑵ centos7系統源碼編譯安裝PHP7.3.5版本
新增系統用戶組和用戶:
下載 PHP7.3.5
[root@localhost ~]# mkdir devdir
[root@localhost ~]# cd devdir/
[root@localhost devdir]# wget https://www.php.net/distributions/php-7.3.5.tar.gz
-bash: wget: 未找到命令
[root@localhost devdir]# rpm -qa|grep wget
[root@localhost devdir]# yum -y install wget
[root@localhost devdir]# rpm -qa|grep wget
wget-1.14-18.el7.x86_64
下載PHP7 解壓 編譯
wget -c https://downloads.php.net/~cmb/php-7.3.4.tar.gz
編譯參數解釋
--with-fpm-user=webu --with-fpm-group=webg 添加PHP運行用戶和用戶組
配置信息出錯:
下載gcc軟體編譯器 yum install -y gcc
configure: error: libxml2 not found. Please check your libxml2 installation.
下載libzip-1.5.2.tar.gz
https://libzip.org/download/libzip-1.5.2.tar.gz
解決libzip 和cmake版本問題
重新配置PHP7編譯環境參數
libzip-1.5.2 無法安裝,已經取消了。
提示off_t類型沒有定義 undefind,解決方法:
編譯安裝
測試PHP是否安裝成功
轉載自:https://my.oschina.net/u/4127346/blog/3047778
⑶ zip密碼 php
開始
$zipArc=newipArchive();if($zipArc->open('/home/test.zip',ZipArchive::CREATE|ZipArchive::OVERWRITE)===true){//設置密碼注意此處不是加密,僅僅是設置密碼
if(!$zipArc->setPassword('password')){thrownewRuntimeException('Setpasswordfailed');
}//往壓縮包內添加文件
$zipArc->addFile('/home/test.png','1/test.png');//加密文件此處文件名及路徑是壓縮包內的
if(!$zipArc->setEncryptionName('1/test.png',ZipArchive::EM_AES_256)){thrownewRuntimeException('Setencryptionfailed');
}
}
$zipArc->close();
注意事項
1 PHP7.2以下不支持加密
php7.2 以下是不支持加密的,我們看一下php官方文檔中的解釋
從PHP 7.2.0和libzip 1.2.0開始,密碼用於解壓縮歸檔,也是ZipArchive :: setEncryptionName() 和ZipArchive :: setEncryptionIndex()的默認密碼。
以前,此功能僅設置用於解壓縮存檔的密碼; 它沒有將非密碼保護的ZipArchive 變成受密碼保護的ZipArchive。
也就是說php7.2之前,setPassword('password')這個方法僅僅是設置setEncryptionName()和setEncryptionIndex()的默認密碼,卻沒有進行加密操作!!!,就問你坑不坑!!
2 方法找不到
提示沒有setEncryptionName和setEncryptionIndex方法時,請編譯時zip模塊時用以下參數
--with-libzip
--enable-zip
3 目錄結構問題
待壓縮的文件目錄,比說說是/home/test/a.png
壓縮後,你發現壓縮包內的目錄結構是/home/test/a.png,
也就是說壓縮包原封不動的保持了原來文件的目錄.可是我們想自定義壓縮包目錄怎麼辦呢?
$a = '/home/test.png';
$b = '1/test.png';//$a是待添加的文件路徑 $b是壓縮包內的路徑$zipArc->addFile($a, $b);
⑷ 在linux 虛擬主機php環境中,php.ini 中 extension=zip.so 主要起什麼作用
在php.ini 中增加extension=zip.so其作用是為php載入 zip 模塊.
可參考以下資料:
Linux平台下PHP zip模塊
1、依次運行以下命令:
wget http://pecl.php.net/get/zip-1.8.3.tgz //貌似已經出新版本了zip1.10.2.tgz
tar zxvf zip-1.8.3.tgz
cd zip-1.8.3
/usr/local/php/bin/phpize (對應的phpize路徑)(安裝好的php位置)
configure --with-php-config=/usr/local/php/bin/php-config (對應的php-config路徑)(php-config文件名不能更改)
make
make install
//此時會在zip/moles/下生成一個zip.so文件,將它拷貝到make之後給的一個路徑下,如有同名的,覆蓋之。
2、生成的模塊路徑:
/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/zip.so (對應的extensions路徑)
3、修改php.ini
extension_dir = "./"修改為extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/"
增加extension=zip.so
4、重啟apache
apache2/bin/apachectl restart
⑸ Linux 腳本編寫 如何編寫一個腳本,修改已有文件中的內容
實現的方法如下:
1、第一步,打開命令控制台以找到要編輯的文件,執行命令ls來查看下面的一些文件,在下面有一個index.php文件,如下圖所示。
⑹ idevicerestore 一直提示未找到命令,該怎麼破
本人同大多封釉一樣,用ubuntu降級過程中第三步出現idevicerestore未知命令的錯誤。
發現是由於依賴庫缺少或者依賴庫版本過低問題導致。故只要安裝正確的依賴庫就行。。
下面教程開始:
打開終端,輸入 su,接著輸入密碼。
1.輸入apt-get update
2.輸入apt-get upgrade
3.輸入./buildpre
3.輸入
sudo apt-get install build-essential automake cmake \libreadline6 autotools-dev libcurl4-openssl-dev autoconf \libplist1 libplist-utils libplist-dev libplist++-dev \libzip-dev git curl libgnutls-dev libreadline-dev l**b-dev \libtool l**b-1.0-0-dev l**bmuxd-dev libglib2.0-dev libimobiledevice-dev (全部復制,,紅色部分是l和諧ibu和諧s和諧b)
4.輸入
mkdir ~/idevicerestorecd ~/idevicerestoregit clone http://git.sukimashita.com/libirecovery.gitcd libirecovery./autogen.shmake && sudo make install
5.輸入
cd ~/idevicerestoregit clone git://github.com/tcf38012/idevicerestore.gitcd idevicerestore./autogen.shmake && sudo make installsudo ldconfig
6.輸入
cd ~/idevicerestoregit clone http://github.com/posixninja/ideviceactivate.gitcd ideviceactivatemake
7.輸入apt-get install libreadline-dev
8.輸入apt-get install python-dev
9.下載附件libplist-1.11,解壓,然後在解壓出來的文件夾裡面新開一個終端,su,密碼,
接著輸入
9.1 輸入 ./autogen.sh
9.2 輸入make
9.3 輸入make install
10.輸入sh +x build.sh
至此,教程結束。能解決大多數依賴問題。後續降級步驟參考其他封釉帖子 。
11.輸入 idevicerestore測試
libplist-1.11.tar.gz (2.04 MB, 下載次數: 79)
http://bbs.feng.com/forum.php?mod=attachment&aid=%3D%3D&request=yes&_f=.gz
⑺ 寶塔面板php7.3&7.4版本不支持ZipArchive手工安裝擴展方法
寶塔面板安裝的PHP7.3和7.4默認已經不帶zip擴展,要手工安裝zip擴展首先需要安裝libzip,方法如下:
安裝完成後,查看是否存在/usr/local/lib/pkgconfig目錄,如果存在,執行如下命令來設置PKG_CONFIG_PATH:
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"
在SSH命令行界面執行以下語句:
最後在重啟一下 PHP 服務即可。
寶塔面板php7.4版本不支持ZipArchive導致程序無法後台直接更新的解決方法
在SSH命令行界面執行以下語句:
最後在重啟一下 PHP 服務即可。
⑻ CentOS 7編譯安裝PHP 7.4提示No package 'libzip' found或者(libzip >= 0.11)
編譯安裝PHP 7.4提示No package 'libzip' found或者(libzip >= 0.11),原因是libzip沒有安裝或者版本太低,解決方法如下:
安裝完成後,查看是否存在/usr/local/lib/pkgconfig目錄,如果存在,執行如下命令來設置PKG_CONFIG_PATH:
⑼ PHP8、FPM及部分擴展編譯安裝
本著能懶則懶的原則,之前我都是寶塔、lnmp腳本等「一鍵」
再不濟也得來個 apt/yum install php
什麼?源碼 make install ? 編譯參數一言難盡,勸退勸退...我只是想要個開發環境而已
沒關系!我來整理一下常用模塊以及參數!環境為 ubuntu/debian
檢查壓縮包的完整性,與官網 sha256比較
安裝以下包
官方的拓展分類
根據需要的模塊添加其後對應的參數
包含常用模塊,可以直接使用
編譯並安裝後
復制 php.ini 到默認目錄 /usr/local/lib/
檢查 php安裝是否正確
復制 fpm 配置文件、運行服務文件
www.conf php-fpm.conf php-fpm.service
修改 fpm 用戶和組,默認為nobody
修改服務文件,取消只讀 不然日誌不能讀寫無法啟動
設置自啟動並運行
本地起服務測試
No package 'libxml-2.0' found
No package 『sqlite3『 found
configure: WARNING: unrecognized options: –with-gd
No package 'zlib' found
No package 'libpng' found
No package 'oniguruma' found
No package 'libcurl' found
No package 'libsystemd' found
No package 'openssl' found
No package 'libzip' found