ubuntu 系統
安裝yum 出錯
須要升級sudo apt-get updatephp
用yum安裝nginx報錯
No package nginx available
解決方法:用apt-gethtml
sudo service ngnix start
查看nginx是否生效 wget http://127.0.0.1
mysql
一直是在用的lnmp的集成安裝包搭建lnmp環境,由於工做須要須要安裝ldap擴展,在網上怎麼都找不到源碼安裝包,只能卸載掉原來的lnmp環境,用ubuntu的php5-ldap擴展,nginx
在安裝中遇到一些問題,網上的文章坑爹的比較多,寫篇文章記錄下來。web
1.安裝mysqlsql
sudo apt-get install mysql-server mysql-client thinkphp
安裝過程當中要輸入root用戶的密碼。數據庫
我在安裝中出錯,是原來的mysql-cilent mysql-workbench 未徹底卸載,將mysql組件徹底卸載的方法:apache
刪除mysql前 先刪除一下 /var/lib/mysql 還有 /etc/mysqlubuntu
sudo rm /var/lib/mysql/ -R
sudo rm /etc/mysql/ -R
sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor
所有刪除以後再執行 apt-get install mysql-server mysql -client
安裝phpmyadmin
sudo apt-get install phpmyadmin
安裝完成後訪問:http://localhost/phpmyadmin/,提示not found。還須要把安裝好的phpmyadmin文件夾放入/var/www/。
sudo ln -s /usr/share/phpmyadmin/ /var/www/
或者將phpmyadmin直接複製到/var/www。
2.安裝nginx
sudo apt-get install nginx
3.安裝成功後。咱們重啓下nginx服務
sudo service nginx restart<span style="font-size: 16px; font-family: 'Microsoft Yahei', Arial, Helvetica, sans-serif;"> </span>
啓動以後咱們就能夠訪問如下咱們的地址了。看能不能出現nginx的歡迎界面。
4.這裏咱們使用php5-fpm來做爲咱們的php解析。
sudo apt-get install php5-fpm
5.接下來咱們要修改一下nginx的站點配置了。
ngnix的配置文件存放在/etc/nginx/sites-availble/default
1. 啓動php-fpm。
# sudo /etc/init.d/php5-fpm start
2. 修改php-fpm和nginx的配置,實現nginx和php聯動。
(1)查看php-fpm默認配置。
# sudo netstat -tunpl | grep php-fpm
展現結果以下:
(2)php-fpm的默認配置的監聽端口爲9000,如今只用修改配置,將php解析的請求轉發到127.0.0.0:9000處理便可。
使用以下命令打開配置文件:
# sudo vim /etc/nginx/sites-available/default
找到下面的內容,增長支持的文件類型,增長後以下圖所示:
在配置文件的後面,增長以下內容:
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params;
}
修改完成後,按「Esc」鍵,輸入「:wq」,保存文件並返回。
經過下面的命令,查看配置是否正確:
# sudo cat /etc/nginx/sites-available/default
1. 重啓php-fpm。
# sudo /etc/init.d/php5-fpm restart * Restarting PHP5 FastCGI Process Manager php5-fpm ...done.
2. 重啓nginx,使配置生效。
# sudo /etc/init.d/nginx restart Restarting nginx: nginx.
1. 在web目錄下建立index.php。
命令以下:
# sudo vim /usr/share/nginx/www/index.php
index.php文件的內容以下:
<?php echo "<title>Test Page</title>"; echo "hello world"; ?>
2. 在瀏覽器中,經過Ubuntu雲服務器公網IP查看環境配置是否成功。
6.咱們在安裝php5相關的一些組件。
[sql] view plaincopy
sudo apt-cache search php5
apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
7.重啓服務
[sql] view plaincopy
sudo service php5-fpm restart
sudo service nginx restart
經測試,如今應該已經安裝成功了。
PHP擴展的安裝方式一般分爲兩種:
1. 隨同PHP編譯
2. 生成單獨的.so文件
這裏介紹第二種方式,對於第二種方式執行效率可能低些,可是模塊化,就是能夠保持php安裝不變的狀況下,經過php.ini鏈接單獨生成的so文件實現擴展,
好比您已經經過了tar包方式安裝了php,那麼如今想增長擴展:
安裝CURL擴展
I. 生成動態連接庫文件.SO
方法以下:
方法1. apt-get install php5-curl
方法2. 去PHP網站下載tar包,phpize本地編譯生成.so
方法3. pear方式安裝,經過pecl命令去在線下載編譯生成.so
方法1在ubuntu下是最簡單的,命令執行完會告知.so所在目錄
II. 配置php.ini
打開php.ini,指定extension_dir目錄,若是extension_dir = '/usr/lib',那麼接下來把生成的.so文件(如curl.so)複製到/usr/lib目錄下,而且加入一個新條目:
extension=curl.so
III. 使之生效
從新啓動apache,運行phpinfo()看是否生效
安裝PDO_MYSQL擴展
採用pear方式安裝
I. 安裝pear
apt-get install php-pear 若是沒有pear要先安裝pear
II. 安裝pdo,pdo_mysql
pecl install pdo pecl install pdo_mysql
生成.so複製到/usr/lib目錄下.
若是沒有安裝php和mysql的開發包,在執行第II步以前還須要安裝
apt-get install php5-devapt-get install libmysqlclient15-dev
III. 修改配置文件php.ini
增長條目
extension=pdo.so
extension=pdo_mysql.so
IV. 使之生效
從新啓動apache,運行phpinfo()看是否生效
在php5.2.10中,php默認已經安裝了pdo,因此extension=pdo.so不加,可是發現和本身生成的pdo_mysql.so不匹配錯誤,解決辦法是:
從新安裝php,增長參數--disable-pdo 禁止pdo模塊,用本身前面生成pdo.so,pdo+mysql.so就OK了
安裝ImageMagic擴展
採用pear方式安裝
I. 安裝ImageMagick
sudo apt-get install imagemagick
II. 安裝imagemagick 的lib 供php調用
sudo apt-get install libmagick++-dev
III. 調用當前的pecl安裝imagick
pecl install imagick
IV. 修改php.ini.重啓apache服務器
在php.ini中添加: extension = imagick.so
phpize的安裝
phpize是屬於php-devel的內容,因此只要運行
apt-get install php-devel就行。ubuntu 下是 apt-get install php-dev
我安裝的時候裝的是php5-dev
裝完以後是用phpize5來裝本身編寫的php擴展
其餘問題
一. 須要部署thinkphp框架,可是nginx不支持pathinfo,修改以下
設置nginx的配置文件
sudo vim /etc/nginx/sites-available/default (這是在ubuntu+nginx環境下的路徑):
location /{// …..省略部分代碼
if(!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
上面的設置Nginx的僞靜態方法, 其實內部是轉發到了ThinkPHP提供的兼容模式的URL,利用這種方式,能夠解決不支持PATHINFO的WEB服務器環境。
此處須要注意的是,若是你的ThinkPHP是安裝在二級目錄,Nginx的僞靜態方法設置以下,其中youdomain是所在的目錄名稱。
location /youdomain/{
if(!-e $request_filename){
rewrite ^/youdomain/(.*)$ /youdomain/index.php?s=$1 last;
}
}
有了上面的代碼以後,再加上下面一段代碼,
location ~ .+.php($|/) {
set $script $uri;
set $path_info "/";
if ($uri ~ "^(.+.php)(/.+)") {
set $script $1;
set $path_info $2;
}
include fastcgi_params;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php?IF_REWRITE=1;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root/$script;
fastcgi_param SCRIPT_NAME $script;
}
添加以上兩段代碼以後,nginx僞靜態即配置完成,你能夠在URL_MODEL=1的環境下使用thinkphp了,固然,別忘了重啓你的nginx服務器呦!
二,我遇到nginx的url重寫問題
nano /usr/local/nginx/conf/nginx.conf
if (!-e $request_filename){
這裏就是一些url重寫的規則
}
當我重起的時候,總是報錯,我又從新看了一下配置文件,沒什麼問題,我就很鬱悶,這個問題困擾我有二三個星期了,今天我在一個老外寫的博客中看到這個東東了。
[root@BlackGhost www]# /usr/local/nginx/sbin/nginx
[emerg]: unknown directive 「if(!-e」 in /usr/local/nginx/conf/nginx.conf:124
二,問題解決
問題在於,if和(之間必須有個空格
3、導入數據
mysql < all-databases.sql(導入數據庫)
mysql -u root -p fukai –force < dmc010003_db.myisam.sql(強行導入)
mysql>source news.sql;(在mysql命令下執行,可導入表)
四. nginx虛擬主機設置
server {
#監聽的端口
listen 80;
#主機名稱
server_name www.lijiashun.cn;
#默認首頁文件,匹配順序從左到右
index index.php index.html index.htm;
#web訪問日誌文件路徑
access_log /var/log/nginx/lijiashun.access_log combined;
#網頁文件存放的目錄
root /www/webroot/www.lijiashun.cn;
}
五.清空文件內容echo "" > access.log