瀏覽標籤:

php

[IIS] 在 Windows Server 上執行 PHP 莫名的慢

原本在Linux非常順暢的Wordpress移植到了Windows Server上卻發生一個頁面要Loading一秒以上,餵狗了一下找了幾種方法來優化一下。

  1. 修改php.ini
    output_buffering修改為Off

    output_buffering = Off
  2. 將php內用到localhost的通通修改為127.0.0.1
  3. 關閉Router的防DDOS功能 <-- 這個功能害我測了好久

修改完後有快一點點了,但還是比不上Linux的速度,可能這就是Windows Server先天上的吃資源吧。

 

 

來源:https://forums.iis.net/t/1153459.aspx?PHP+very+slow+on+IIS7

       

Selinux 安全性設定造成php-mysql無法正常連線

今天在測試Google Cloud SQL的時候,明明權限設定沒有問題,但不知為何在我CentOS上面就是無法執行mysql_connect函式,搞了幾個小時,發現又是Selinux安全性在搞鬼,找到問題來源自然好解決。

  1. 取得 selinux 和httpd有關的參數
    getsebool -a | grep 'httpd'

    未命名

  2. 把他打開就可以了
    setsebool httpd_can_network_connect_db 1
       

CentOS 7.X Wrodpress 上傳的檔案無法被移動至wp-content/uploads/

在移植完Wrodpress測試是否正常時,發生了媒體無法上傳的問題,錯誤訊息給出上傳的檔案無法被移動至wp-content/uploads/,就翻了之前寫的文章WordPress 資料權限修復,這邊有一點點不太一樣的就是在CentOS裡面Apache的使用者不是www-data而是apache,修正完資料夾權限後竟然還是無法正常上傳媒體,爬文爬了一整晚將近12小時,下了各種關鍵字都找不到原因,最後快要放棄時逛逛PTT Linux版時無意間看到了這篇,才發現原來除了預設的資料夾權限以外,還多了SELinux安全性的問題。

解決方法有兩種如下:

  1. 給予權限寫入資料 (推薦!!)
    • 給予httpd讀取的權限
      sudo chcon -t httpd_sys_content_t /var/www/html/ -R
    • 給予寫入的權限
      sudo chcon -t httpd_sys_rw_content_t /data/www/html/sofast/wp-content/* -R
  2. 完全關閉SELinux (不推薦)
    • 開啟路徑
      /etc/sysconfig/selinux
    • 搜尋SELINUX修改為disabled
      //預設enforcing為開啟,disabled為關閉
      SELINUX=disabled
    • 重開機

查詢SELinux是否開啟(Enforcing為開啟,disabled為關閉)

getenforce

參考:

  1. CentOS 7 + SELinux + PHP + Apache – cannot write/access file no matter what
  2. CentOS 關閉SELinux方式
  3. [問題] CentOS 7 apache資料夾權限
       

CentOS 7.X Lamp環境安裝 (Linux+Apache+MariaDB+PHP)

看到網路上的人都推說,Linux Server使用CentOS架設比較適合,從預設開啟防火牆就知道了,我就來試試看CentOS與目前本站使用的Ubuntu Server差在哪。

安裝CentOS與更新套件清單

  1. CentOS官方網站下載最新版CentOS-7-x86_64-DVD-1511.iso,安裝過程就省略了,本人是使用最小安裝,所以只有指令介面,反正要當Server使用,如果安裝GUI的話反而浪費資源對吧?
  2. Ubuntu與CentOS安裝套件的方式有點不太一樣,Ubuntu是使用apt-get這個指令來安裝,但CentOS是使用yum來安裝套件,這點需要注意一下。首先先更新一下列表吧,使用管理員權限的帳號輸入
    sudo yum update -y

    -y 是忽略詢問是否同意直接更新

安裝Apache網頁伺服器

  1. 安裝前記得先使用上面的指令更新套件清單唷,不然可能會有奇怪的問題。
  2. 輸入指令
    sudo yum install httpd -y
  3. 安裝完畢後接著就要啟用服務拉,輸入指令
    service httpd start

安裝MariaDB(MySQL)資料庫伺服器

  1. 在CentOS 7.X中MySQL是被替換成MariaDB的,所以就借此也來體驗看看MariaDB的資料庫囉。
    輸入指令

    sudo yum install mariadb mariadb-server -y

    這樣就安裝成功囉!
    01

  2. 來啟動服務吧
     service mariadb start

    01

設定MariaDB伺服器

  1. 安裝完畢後,就來設定一些資料庫的基本設定吧!
    輸入指令

    /usr/bin/mysql_secure_installation

    這裡因為是第一次安裝,所以直接按Enter繼續即可。
    01

  2. 是否要設定root的密碼,輸入y開始設定
    01
  3. 重複輸入兩次相同的密碼
    01
  4. 是否要刪除匿名帳號,輸入y同意刪除,不然日後會有很多安全性問題
    01
  5. 是否要開放root管理員透過外網登入,這邊請輸入y限制管理員只能從本地連線較為安全
    01
  6. 是否刪除test資料庫輸入y
    01
  7. 是否重新載入權限表輸入y
    01
  8. 設定完成!
    01

安裝PHP+phpMyAdmin管理資料庫

  1. 安裝php與連接資料庫套件
    sudo yum install php php-mysql -y

    01

  2. 安裝yum第三方EPEL套件庫
    sudo yum install epel-release -y

    清除快取

    sudo yum clean all -y

    更新套件庫

    sudo yum update -y
  3. 安裝phpMyAdmin
     sudo yum install phpmyadmin -y

    01

  4. 重新啟動網頁伺服器
     service httpd restart

設定防火牆

  1. 永久允許網頁伺服器通過防火牆
    sudo firewall-cmd --add-service=http --permanent
  2. 若需要https服務則輸入
    sudo firewall-cmd --add-service=https --permanent

    查詢防火牆規則

    firewall-cmd --list-all --permanent

    --permanent為永久規則

  3. 重新啟動防火牆
     service firewalld restart

設定phpMyAdmin

  1. 預設除了本地是不允許訪問phpMyAdmin,但因為我們現在要設定所以需要修改一下預設值,使用WinSCP連線到主機上面打開
    /etc/httpd/conf.d/phpMyAdmin.conf
  2. 找到
    <RequireAny>
       Require ip 127.0.0.1
       Require ip ::1
    </RequireAny>

    Require ip ::1下方新增自己的IP

    <RequireAny>
       Require ip 127.0.0.1
       Require ip ::1
       Require ip 你的IP
    </RequireAny>
  3. 重啟網頁伺服器
    service httpd restart
  4. 這樣就可以正常登入囉!
    01

 

開機自動啟動服務

每次開機都要手動啟用服務,這樣實在太麻煩了,輸入以下指令可以在每次開機後自動啟用服務

chkconfig httpd on
chkconfig mariadb on

 

參考:

  1. [Centos7] 新的防火牆firewalld
  2. Installing LAMP (Linux, Apache, MariaDB, PHP/PhpMyAdmin) in RHEL/CentOS 7.0
       

Line ChatBot 寶寶小幫手 空氣品質查詢

剛剛邊吃飯邊看著LOL MSI聯賽時,
突然無聊想到政府不是有公開API嗎?
來找個東西玩玩好了,
看了一下政府資料開放平台
最後決定來做一個空氣品質即時污染指標的查詢功能,

無聊的時候可以玩玩看唷XD
指令:!空氣 地區
範例:!空氣 基隆

如果找不到這個地區的話,
寶寶會生氣唷ლ(◉◞౪◟◉ )ლ

 

messageImage_1462626403914 messageImage_1462620227535

寶寶QRCode:

yqx0407i

       

修改 WordPress 上傳檔案大小限制設定 From php.ini

1. 找到伺服器上的php.ini

C:\Program Files\PHP\v7.0

2. 搜尋 檔案限制

upload_max_filesize

3. 取代 (範例大小修改為16M)

upload_max_filesize = 16M

4. 搜尋 POST最大限制

post_max_size

5. 取代 (範例大小修改為32M)

post_max_size = 32M

6. 搜尋 記憶體限制

memory_limit

7. 取代 (範例大小修改為64M)

memory_limit = 64M

8. 最後重新啟動伺服器完成修改。