2019年3月17日 星期日

在Centos上安裝laravel

1. 先確認安裝好php跟composer之後,並且確保php有符合以下需求
  • PHP >= 7.1.3
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension
  • Ctype PHP Extension
  • JSON PHP Extension
  • BCMath PHP Extension

2. 就可以利用以下指令安裝laravel套件
composer global require laravel/installer

3. 切到你要放專案的目錄後,使用以下指令建立一個laravel專案
$HOME/.config/composer/vendor/bin/laravel new `專案名稱`

4. 記得將laravel專案底下的storage資料夾給予777權限
chmod -R 777 /usr/share/nginx/`專案名稱`/storage/

5. 將laravel專案設定一個virtual host
編輯/etc/nginx/conf.d/default.conf,依照個人需求以下設定
server {
    listen 80;
    server_name abowblog.abowspy.com;

    root /usr/share/nginx/html/`專案名稱`/public;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location  ~ \.php(/|$) {
        root /usr/share/nginx/`專案名稱`/public;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

在CentOS上安裝php的管理套件composer

1. 直接依照官網的方式執行以下4個指令,就可以安裝composer
參考官網:https://getcomposer.org/download/
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

2. 然後再把composer.phar檔案放在/usr/local/bin底下
mv composer.phar /usr/local/bin/composer

3. 就可以用以下指令來確認是否安裝成功
composer -v

在CentOS上安裝python3跟常用爬蟲套件

1. 下載Python3的安裝檔,解壓縮之後,切換到資料夾
cd /usr/src/
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
tar xzf Python-3.6.5.tgz
cd Python-3.6.5

2. 執行安裝前的設定參數,如果有錯誤訊息,就要確認相依套件是否有安裝好 --enable-optimizations <-可以優化
sudo ./configure --prefix=/usr/local

3. 開始進行編譯安裝
make
make install

4. 執行以下建立 python3的軟連結
ln -s /usr/local/bin/python3 /usr/bin/python3

5. 之後就可以用以下這兩個指令,測試看看是否安裝成功,安裝3.6.5以後的版本,會幫忙安裝好pip3
python3 -V
pip3 -V

6. 接著先更新pip3套件
pip3 install --upgrade pip

7. 安裝常用的爬蟲套件
--numpy要安裝1.13.3以下版本,才不會有小數點會拉長問題
--pandas要安裝0.22版本以下版本,才不會有錯誤訊息
pip3 install numpy==1.13.3
pip3 install pandas==0.22
pip3 install requests
pip3 install BeautifulSoup4
pip3 install selenium
pip3 install lxml
pip3 install html5lib

8. 要先安裝mysql-devel,才能安裝mysqlclient的套件
yum install -y mysql-devel
pip3 install mysqlclient==1.3.12

9. 然後再安裝爬蟲會用的chromium套件
yum install -y chromium

10. 接著去這個地方:https://sites.google.com/a/chromium.org/chromedriver/downloads,下載2.38版本的chromedriver_linux64.zip
11. 解壓縮後,放在/usr/bin/目錄下
12. 記得給chromedriver這個檔案執行的權限
chmod +x /usr/bin/chromedriver

2019年3月16日 星期六

在CentOS上安裝PHP7.2

1. 先安裝一下epel-release
yum -y install epel-release

2. 在安裝php會用到的函示庫,執行以下指令
yum install -y \
gcc-c++ autoconf libjpeg libjpeg-devel libpng \
libpng-devel freetype freetype-devel \
libpng libpng-devel libxml2 libxml2-devel \
zlib zlib-devel glibc glibc-devel glib2 \
glib2-devel bzip2 bzip2-devel ncurses curl \
openssl-devel gdbm-devel db4-devel libXpm-devel \
libX11-devel gd-devel gmp-devel readline-devel \
libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel \
libicu-devel libmcrypt-devel libmemcached-devel

3. 下載穩定版的php7,解壓縮後,切到此目錄
cd /usr/src/
wget http://tw2.php.net/distributions/php-7.2.16.tar.gz
tar -xzvf php-7.2.16.tar.gz
cd php-7.2.16

4. 設定php編譯參數,如果有錯誤訊息,就要確認相依套件是否有安裝好
./configure --prefix=/usr/local/php \
--with-mysql-sock --with-mysqli --enable-fpm \
--enable-soap --with-libxml-dir --with-openssl \
--with-mhash --enable-inline-optimization --with-pcre-regex \
--with-zlib --enable-bcmath --with-iconv \
--with-bz2 --enable-calendar --with-curl \
--with-cdb --enable-dom --enable-exif \
--enable-fileinfo --enable-filter --with-pcre-dir \
--enable-ftp --with-gd --with-openssl-dir \
--with-jpeg-dir --with-png-dir --with-zlib-dir \
--with-freetype-dir --enable-gd-jis-conv --with-gettext \
--with-gmp --enable-json --enable-mbstring \
--enable-mbregex --disable-debug --enable-mbregex-backtrack \
--with-libmbfl --with-onig --enable-pdo \
--with-pdo-mysql --with-readline --enable-session \
--enable-shmop --enable-simplexml --enable-sockets \
--enable-sysvmsg --enable-sysvsem --enable-sysvshm \
--enable-wddx --with-xsl --enable-zip \
--disable-rpath --with-pear --enable-intl \
--enable-mysqlnd-compression-support

5. 進行編譯跟安裝
make
make install

6. 執行以下建立php的環境變數
ln -sf /usr/local/php7/bin/php /usr/local/bin/php

7. 執行以下步驟,將預設的配置檔複製到正常路徑
cp php.ini-development /usr/local/php7/lib/php.ini
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
cp /usr/src/php-7.2.16/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

8. 啟動php-fpm
/etc/init.d/php-fpm restart
/etc/init.d/php-fpm start

9. 修改php.ini,把cgi.fix_pathinfo=0 (為了安全性,避免惡意腳本插入攻擊)
vim /usr/local/php7/lib/php.ini

10. 打開nginx的設定檔,加入PHP的設定,執行 vim /etc/nginx/conf.d/default.conf 在index部分加入 index.php 加入以下設定
location / {
    root /usr/share/nginx/html;
    index index.php index.html index.htm;
}
location  ~ \.php(/|$) {
    root /usr/share/nginx/html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

11. 在跟目錄就可以新增一個php檔案來測試,編輯vim /usr/share/nginx/html/info.php
<?php
    phpinfo();
?>

12. 重新啟動nginx
systemctl restart nginx

13. 打開網址http://xx.xx.xx.xx/info.php

2019年3月15日 星期五

在CentOS上安裝MySQL5.7

在 RHEL 及 CentOS 7 開始,預設的資料庫系統是MariaDB,基本上 MariaDB 可以取代 MySQL,但如果仍然想繼續用 MySQL 的話,除了可以編譯 MySQL Community Server 的原始碼外,也可以安裝 Oracle 提供的官方 YUM repository,就可以透過 Yum 安裝 MySQL Community Server。

1. 安裝 MySQL 5.7 的 yum repo (for Centos 7版本)
rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

2. 利用yum的方式來安裝mysql 5.7
yum -y install mysql-server

3. 啟動MySQL,查看目前運作狀態,至少要能看到Active: active (running)
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld

4. 以前MySQL安裝後預設root密碼是空白,為了增加安全性,從MySQL 5.7開始,MySQL在安裝時會自動建立一個root密碼,需要修改才可以正常使用。要找回這個MySQL建立的root密碼,可以用以下指令找回
sudo grep 'temporary password' /var/log/mysqld.log

5. 執行“安全性的設定安裝”,建議先將 “密碼強度檢查” 關閉 (請參考補充部分)
mysql_secure_installation

6. 開通防火牆設定
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload 

補充1. 建議可以先將密碼檢查強度降低,先利用mysql -u root -p指令登入mysql後,執行以下指令
mysql> set global validate_password_policy=0;

補充2. 如何給使用者登入的權限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1234Asdf' WITH GRANT OPTION;
mysql> flush privileges;

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022