Apache

Apache

14 items(1/2) 2 Next » Last »|

macOS 12.0 Monterey: Apache Setup: Multiple PHP Versions

โดย Little Bear on 4 ต.ค. 64 14:48

เดี๋ยวค่อยมาเขียนรายละเอียด

Install Apache

Location of Apache config file is /opt/homebrew/etc/httpd/httpd.conf Change www home folder

mv /opt/homebrew/var/www /opt/homebrew/var/www.bak
ln -s /Users/httpdocs /opt/homebrew/var/www

brew tap shivammathur/php

เลือกมาสักเวอร์ชั่น

brew install shivammathur/php/php@5.6
brew install shivammathur/php/php@7.0
brew install shivammathur/php/php@7.1
brew install shivammathur/php/php@7.2
brew install shivammathur/php/php@7.3
brew install shivammathur/php/php@7.4
brew install shivammathur/php/php@8.0

Mac M1 : Config file อยู่ที่

/opt/homebrew/etc/php/7.0/php.ini
/opt/homebrew/etc/php/7.1/php.ini
/opt/homebrew/etc/php/7.2/php.ini
/opt/homebrew/etc/php/7.3/php.ini
/opt/homebrew/etc/php/7.4/php.ini
/opt/homebrew/etc/php/8.0/php.ini

Mac Intel : Config file อยู่ที่

/usr/local/etc/php/5.6/php.ini
/usr/local/etc/php/7.0/php.ini
/usr/local/etc/php/7.1/php.ini
/usr/local/etc/php/7.2/php.ini
/usr/local/etc/php/7.3/php.ini
/usr/local/etc/php/7.4/php.ini
/usr/local/etc/php/8.0/php.ini

ผลลัพท์ตอนติดตั้ง

[code]
To enable PHP in Apache add the following to httpd.conf and restart Apache:
    LoadModule php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so

    <FilesMatch .php$>
        SetHandler application/x-httpd-php
    </FilesMatch>

Finally, check DirectoryIndex includes index.php
    DirectoryIndex index.php index.html

The php.ini and php-fpm.ini file can be found in:
    /usr/local/etc/php/7.4/

php@7.4 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have php@7.4 first in your PATH, run:
  echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrc
  echo 'export PATH="/usr/local/opt/php@7.4/sbin:$PATH"' >> ~/.zshrc

For compilers to find php@7.4 you may need to set:
  export LDFLAGS="-L/usr/local/opt/php@7.4/lib"
  export CPPFLAGS="-I/usr/local/opt/php@7.4/include"<br />
<br />
<br />
To start shivammathur/php/php@7.4:
  brew services start shivammathur/php/php@7.4
Or, if you don't want/need a background service you can just run:
  /usr/local/opt/php@7.4/sbin/php-fpm --nodaemonize

เปลี่ยนลิงก์

brew unlink php && brew link --overwrite --force php@7.4

Apache

แก้ไขไฟล์ /etc/apache2/httpd.conf หรือ /usr/local/etc/httpd/httpd.conf file scroll to the bottom of the LoadModule entries.

 LoadModule php5_module /usr/local/opt/php@5.6/lib/httpd/modules/libphp5.so
 <a class="hashtag" href="/tags/LoadModule">#LoadModule</a> php7_module /usr/local/opt/php@7.0/lib/httpd/modules/libphp7.so
 <a class="hashtag" href="/tags/LoadModule">#LoadModule</a> php7_module /usr/local/opt/php@7.1/lib/httpd/modules/libphp7.so
 <a class="hashtag" href="/tags/LoadModule">#LoadModule</a> php7_module /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so
 <a class="hashtag" href="/tags/LoadModule">#LoadModule</a> php7_module /usr/local/opt/php@7.3/lib/httpd/modules/libphp7.so
 <a class="hashtag" href="/tags/LoadModule">#LoadModule</a> php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so
 <a class="hashtag" href="/tags/LoadModule">#LoadModule</a> php_module /usr/local/opt/php@8.0/lib/httpd/modules/libphp.so

Install mariadb

brew install mariadb

Restart MariaDB

Auto start

brew services start mariadb

Manual start

mysql.server restart

Location of database is /opt/homebrew/var/mysql, If you want to change use symbolic link to new location

brew services stop mariadb
cp -R /opt/homebrew/var/mysql /Users/mysql
mv /opt/homebrew/var/mysql /opt/homebrew/var/mysql.bak
mkdir /opt/homebrew/var/mysql
ln -s /Users/mysql /opt/homebrew/var/mysql
brew services start mariadb

ที่มา

อีกที : macOS 11.0 Big Sur Apache/MiriaDB/PHP Setup

โดย Little Bear on 21 ธ.ค. 63 10:21

รอก่อนนะ ค่อยกลับมาทยอยเขียน

Edit Apache config

sudo nano /etc/apache2/httpd.conf
ServerName my.local.:80

<Directory "/">
AllowOverride All
Require all denied
</Directory>

<Directory "/Library/WebServer/Documents">
AllowOverride All
</Directory>

Restart Apache

sudo apachectl restart
sudo apachectl -k graceful

Edit MariaDB config

nano ~/.my.cnf

Restart MariaDB

Auto start

brew services start mariadb

Manual start

mysql.server restart

ติดตั้ง PHP หลายเวอร์ชั่น

Configuration

PHP Config

nano /usr/local/etc/php/8.0/php.ini
...
post_max_size = 1024M
upload_max_filesize = 1024M
...

ที่มา

Apache Config on Ubuntu Server :: Manual add new site

โดย Little Bear on 10 ต.ค. 63 16:16

Create new user how

sudo adduser userName

Make user sudo how

sudo adduser userName sudo

MySQL Configuration

  • Increrase memory size for MySQL Server using nano /etc/my.cnf and add/change value ตามรายละเอียด
    innodbbufferpoolsize = 2048M
    innodblogfilesize = 512M
    maxconnections = 500
    keybuffer_size = 512M
    

PHP Config

Set timezone to Asia/Bangkok

nano /etc/php/7.4/apache2/php.ini
date.timezone = Asia/Bangkok

Add CNAME domain.com to ppi.psu.ac.th

Add new site to Apache

cd /etc/apache2/sites-available
nano sites-available/doname.com.conf
<VirtualHost *:80>
    ServerName domain.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/domain.com
</VirtualHost>
<VirtualHost *:80>
    ServerName www.domain.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/domain.com
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
    ServerName domain.com
    ServerAdmin webmaster@localhost
    DocumentRoot /home/user/domains/domain.com
</VirtualHost>
<VirtualHost _default_:443>
    ServerName www.domain.com
    ServerAdmin webmaster@localhost
    DocumentRoot /home/user/domains/domain.com
</VirtualHost>
</IfModule>
cd /etc/apache2/sites-enabled
ln -s ../sites-available/domain.com.conf domain.com.conf

Restart Apache

systemctl restart apache2

Restart MySql

systemctl restart mysql

INSTALL Let's Encrypt

apt-add-repository -r ppa:certbot/certbot

After that, the following commands do not generate any errors:

apt update
apt-get update
apt install python3-certbot-apache
certbot --apache -d domain.com -d www.domain.com

You should test your configuration at:

https://www.ssllabs.com/ssltest/analyze.html?d=domain.com

IMPORTANT NOTES:

Congratulations! Your certificate and chain have been saved at:

  • /etc/letsencrypt/live/domain.com/fullchain.pem
  • Your key file has been saved at:
  • /etc/letsencrypt/live/domain.com/privkey.pem
  • Your cert will expire on 2021-01-08. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew all of your certificates, run "certbot renew"

To test the renewal process, you can do a dry run with certbot:

sudo certbot renew --dry-run

Correct way to completely remove issued certificate(s) for a domain

certbot delete --cert-name domain.com

Copy file from another server using SSH

Alternatively, you could mount the myserver's filesystem over SSH with sshfs. This may be too much hassle for a one-off need, but convenient if you do this sort of thing often.

mkdir myserver
sshfs -p 22 domain.com:/path/ myserver
wget -O ~/myserver/path/to/remote/destination http://www.example.com/whatever

rsync -trv myserver/src/path/ dest/path/
umount myserver

rsync in background

nohup rsync -trv myserver/src/path/ dest/path/ &

Dump Database

mysqldump -u [username] -p [database-you-want-to-dump] > [path-to-place-data-dump.sql]
/usr/local/mysql/bin/mysqldump -u [username] -p [database-you-want-to-dump] > [path-to-place-data-dump.sql]

Ways to Flush DNS Cache on Mac OSx

sudo killall -HUP mDNSResponder

WhoIs LookUp

nslookup -type=ns softganz.com

Setup Time Sync

ติดตั้ง

apt-get install ntp

แก้ไข config

server 1.th.pool.ntp.org
server 0.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server clock.nectec.or.th

Restart

service ntp restart

ที่มา

เช็คเงื่อนไข url request ใน .htaccess

โดย Little Bear on 6 ต.ค. 61 14:12

ต้องการตรวจสอบว่า url ที่เรียกเข้ามานั้น หากอักษรตัวหน้าเท่ากับคำบางคำ ก็ให้เรียกไปที่ url บางตัว หากไม่ใช่ ก็ให้เรียกไปอีกแห่งหนึ่ง

# /garage/xxx or /saveup/xxx or /js/xxx = > /folder1/index.php
RewriteCond %{REQUEST_URI} ^/(garage|saveup|js/).* [NC]
RewriteRule ^(.*)$ /folder1/index.php? [L,QSA]

# /library/xxx = > /library/xxx
RewriteCond %{REQUEST_URI} ^/(library)/.* [NC]
RewriteRule ^(.*)$ $1 [L,QSA]

หาอ่านข้อมูลเกี่ยวกับ .htaccess ที่ Apache Module mod_rewrite

โดยเฉพาะที่นี่ มีตัวอย่างให้ดูเพียบ THE Ultimate Htaccess

Make Macbook Pro to be Web Server

โดย Little Bear on 10 ก.ค. 58 16:43

แก้ config ของ Apache

sudo nano /etc/apache2/httpd.conf
AllowOverride All

เปิดใช้งาน mod_rewrite

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

Install PHP

brew update
brew install php@7.3
brew link php@7.3
brew services start php@7.3

เปิดใช้งาน php

LoadModule php7_module libexec/apache2/libphp7.so

เปลี่ยน DocumentRoot ของ web

sudo mv /Library/WebServer/Documents /Library/WebServer/Documents.old
sudo ln -s /New/Web/Folder /Library/WebServer/Documents

แก้ php config โดย cp /etc/php.ini.default /etc/php.ini

post_max_size = 16M
upload_max_filesize = 1024M

date.timezone = Asia/Bangkok

Restart Apache

sudo apachectl configtest
sudo apachectl -k restart

ที่มา macOS 10.15 Catalina Apache Setup: SSL


Install MariaDB

brew install mariadb

Start MariaDB

Service start

brew services start mariadb

Start without service

mysql.server start

Link data to new location

sudo ln -s /Users/mysql /usr/local/var/mysql
sudo chown -h user:group /usr/local/var/mysql

แก้ไข config file ~/.my.cnf

sql_mode = NO _ ENGINE _ SUBSTITUTION,STRICT _ TRANS _ TABLES

default-storage-engine = MYISAM
collation-server = utf8_unicode_ci
character-set-server = utf8

Auto Start

launchd In MacOS, create a file called /Library/LaunchDaemons/com.mariadb.server.plist with the following contents (edit to suit):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key> <string>com.mariadb.server</string>
        <key>KeepAlive</key><true/>
    <key>RunAtLoad</key><true/>
    <key>LaunchOnlyOnce</key><false/>
    <key>ExitTimeOut</key><integer>600</integer>
        <key>WorkingDirectory</key><string>/usr/local/var</string>
        <key>Program</key><string>/usr/local/bin/mysqld</string>
        <key>ProgramArguments</key>
        <array>
        <string>/usr/local/bin/mysqld</string>
        <string>--user=_mysql</string>
        <string>--basedir=/usr/local/opt/mariadb</string>
        <string>--plugin-dir=/usr/local/opt/mariadb/lib/plugin</string>
        <string>--datadir=/usr/local/var/mysql</string>
        <string>--log-error=/usr/local/var/mysql/Data-Server.local.err</string>
        <string>--pid-file=/usr/local/var/mysql/Data-Server.local.pid</string>
        <string>--sql-mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION</string>
        </array>
</dict>
</plist>

Then from a shell, run launchctl load /Library/LaunchDaemons/com.mariadb.server.plist and MariaDB will run immediately, and also upon reboot.


Fix the 2002 socket error first if you haven’t done so from the MySQL section-

sudo mkdir /var/mysql

Location -> /usr/local/Cellar/mariadb/{version}

Data location /usr/local/var/mysql/


sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Start MySQL

sudo /usr/local/mysql/support-files/mysql.server start

Stop MySQL

sudo /usr/local/mysql/support-files/mysql.server stop

Restart MySQL

sudo /usr/local/mysql/support-files/mysql.server restart

Make Ubuntu to be a web server (LAMP)

โดย Little Bear on 21 มิ.ย. 54 12:33

ติดตั้ง Ubuntu Desktop ให้เป็น Server (LAMP)

ผ่านไป 2 ปี ก็ถึงเวลาต้องติดตั้ง Ubuntu ใหม่เสียที คราวนี้เลยถือโอกาสเปลี่ยนเป็น Ubuntu 11.04 64 bit ไปเลย ก็เลยลองมารีวิวการติดตั้ง LAMP บน Ubuntu ใหม่ว่ามีอะไรที่เปลี่ยนแปลงไปบ้าง

หมายเหตุ : การติดตั้งต่อไปนี้ใช้สิทธิ์ของ root ขอให้เข้าสู่สิทธิ์ของ root โดยการเปิด terminal แล้วพิมพ์ sudo su

Install L.A.M.P Stack (Apache, Mysql, PHP) ทีเดียวซะเลย

root@god:/# apt-get install lamp-server^

แล้วก็ลง phpMyAdmin

root@god:/# apt-get install phpmyadmin

เลือก Apache แล้ว YES สำหรับ dbconfig-common.

ติดตั้งเพิ่มเติม

php5-curl

root@god# apt-get install php5-curl

หรือชอบที่จะลงทีละตัว ก็

Install Apache

root@god:/# apt-get install apache2

Enable mod_rewrite

root@god:/# a2enmod rewrite

เปลี่ยน DocumentRoot ของ apache เป็น folder อื่น และเปิดใช้งาน clean url

root@god:/# nano /etc/apache2/sites-available/default
  • เปลี่ยนบรรทัด /var/www/ เป็น /my web folder/ จำนวน 2 ตำแหน่ง
  • แก้ค่า AllowOverride ของ /my web folder/ จาก None เป็น AllowOverride All

Install PHP

root@god:/# apt-get install php5 libapache2-mod-php5 php5-gd
root@god:/# /etc/init.d/apache2 restart

Install MySQL

root@god:/# apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql phpmyadmin
root@god:/# /etc/init.d/apache2 restart

หากมีข้อมูลเก่าของ mysql ก็สามารถ copy มาไว้ที่ /var/lib/mysql แล้ว โดยใช้คำสั่ง

root@god:/# cp /media/disk/var/lib/mysql/* /var/lib/mysql/
root@god:/# chown -hR mysql /var/lib/mysql/*
root@god:/# chgrp -hR mysql /var/lib/mysql/*

ย้ายข้อมูล mysql ไปไว้ที่อื่น

root@god:/# /etc/init.d/mysql stop
root@god:/# mkdir /home/mysql
root@god:/# chown -R mysql:mysql /home/mysql
root@god:/# cp -r /var/lib/mysql/mysql /home/mysql/
root@god:/# chown -R mysql:mysql /home/mysql/*

แล้วแก้ my.cnf

root@god:/# nano /etc/mysql/my.cnf

หาคำนี้ให้เจอ :

datadir = /var/lib/mysql

แล้วเปลี่ยนเป็นตำแหน่งใหม่ :

datadir = /home/mysql

เสร็จแล้วก็ restart mysql service

root@god:/# /etc/init.d/mysql start
Starting MySQL database server mysqld [ OK ]

แล้ว mysql จะทำการสร้างไฟล์ ibdata1, ib_logfile0, อื่น ๆ ขึ้นมาใหม่

ทุกอย่างน่าจะเรียบร้อย แต่ผมไม่สามารถ start mysql ได้ มันค้างอยู่ เลยต้องไปแก้ค่าในไฟล์ /etc/apparmor.d/usr.sbin.mysqld โดยเปลี่ยนค่า /var/lib/mysql ให้เป็น /home/mysql ด้วย

แล้วคราวนี้ก็ทำการ copy ฐานข้อมูลเก่า ๆ มาได้เลย อย่าลืมเปลี่ยน owner/group เป็น mysql ด้วยนะ

ที่มา

#sudo apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
<a class="hashtag" href="/tags/sudo">#sudo</a> apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

ความหมายของแต่ละ apache directives ครับ

โดย Little Bear on 26 พ.ค. 54 10:04

KeepAlive = เมื่อเสร็จ request แล้วยังไม่ต้องปิด connection ให้รอดูว่าจะมี request เข้ามาอีกรึเปล่า ถ้ามีก็ใช้ connection นี้ต่อไปเลย มีประโยชน์สำหรับเว็บที่มี request เยอะๆใน 1 หน้าเว็บ – รูปภาพ 1 รูปนับเป็น 1 request – 1 frame นับเพิ่มอีก 1 request (รูปใน frame นับเพิ่มต่างหากอีก) ดังนั้นเว็บที่มีพวกนี้เยอะๆควรเปิด keepalive ไว้ เพื่อลดจำนวน connection ที่เข้ามา

Apache Rewrite - ยากจริง ๆ

โดย Little Bear on 28 ก.ค. 53 16:54

กำลังศึกษาการเขียน Apache rewrite rule จะทำ subdomain redirect ไปสู่โปรแกรม

เช่น http://bear.softganz.com ไป http://www.softganz.com/index.php?u=bear

เขียนยากจริง ๆ พยายามทำความเข้าใจอยู่ หากพอจะเข้าใจ จะมาเขียนอธิบายรายละเอียดอีกที

แหล่งเรียนรู้

dir ที่สามารถ upload file ได้ให้ทำการป้องกันไม่ให้ php perl ทำงานได้

โดย Little Bear on 23 ส.ค. 52 21:04

dir ที่สามารถ upload file ได้ให้ทำการป้องกันไม่ให้ php perl ทำงานได้ เพราะว่าถ้าเกิดหลุดขึ้นมา จะอันตรายมาก ๆ วิธีการป้องกันก็คือ ไปกำหนดเพิ่ม ใน httpd.conf ดังต่อไปนี้ สมมติว่า /home/webmaster/public_html/webboard/file เป็นส่วนที่ใช้เก็บรูปของบอร์ดเวลา post ขึ้นไป ผมก็จะกำหนดเพิ่มดังนี้

<Directory "/home/webmaster/public_html/webboard/file">
Options Indexes MultiViews -ExecCGI
AllowOverride None
Order allow,deny
Allow from all
php_flag engine off
</Directory>

เท่านี้ก็ปลอดภัยอีกระดับนึงครับ ถ้าเกิด script เราหลุด hacker สามารถ upload file ขึ้นไปได้ แต่เค้าก็จะไม่สามารถสั่งให้ทำงานได้ครับ ..

How to install Lighttpd+PHP4+MySql5 on Ubuntu 8.10

โดย Little Bear on 30 พ.ย. 51 00:14

หลังจากที่ตัดสินใจปรับ CMS ที่เขียนอยู่ไปวิ่งบน PHP5 ก็ไม่นึกว่าจะต้องกลับมาทดสอบ CMS กับ PHP4+MySql3 อีกแล้ว แต่หลังจากที่ยังคงมีเว็บที่ดูแลอยู่อีก 3 เว็บยังคงทำงานอยู่บน PHP4 และไม่มีแนวโน้มว่าเขาจะปรับเวอร์ชั่นของ PHP ให้ (หรือเขาจะปรับให้แต่คิดเงินอีกหลายพัน) ก็เลยต้องกลับมาปรับแก้โปรแกรมใหม่ (ซึ่งจริง ๆ ก็คงไม่มากนัก แต่ต้องตรวจสอบใหม่ทั้งระบบ)

พยายามติดตั้ง Apache2+PHP4+MySql3 แต่ติดปัญหาตอนติดตั้ง PHP4

เลยติดตั้ง Lighttpd+php4+MySql5 แทน

  • ติดตั้ง Lighttpd โดย

    sudo apt-get install lighttpd lighttpd-doc

  • ติดตั้ง php4-cgi

    sudo apt-get install php4-cgi
    sudo apt-get install php4-mysql

  • เปิดใช้งาน cgi

    sudo lighty-enable-mod cgi

  • แก้ไขไฟล์ /etc/lighttpd/conf-enabled/10-cgi.conf โดยเอาเครื่องหมาย # หน้า cgi.assign ออกให้หมด

หากใน sources list ไม่มี php4-cgi ก็ให้เพิ่ม sources นี้ใน /etc/apt/sources.list ซึ่งได้มาจาก http://www.dotdeb.org/mirrors/

deb http://mirror.oeg.com.au/packages.dotdeb.org stable all
deb-src http://mirror.oeg.com.au/packages.dotdeb.org stable all

และอาจจะต้องติดตั้ง libzzip-0-12 ก่อน

ข้อมูลอ้างอิง

ปล. อาจจะมั่ว ๆ ไปนิด วันหลังจะมาเรียบเรียงใหม่อีกทีนะครับ <!-- อย่างแรกคือ ติดตั้ง apache2 ก่อน

sudo apt-get install apache2

ต่อมาติดตั้ง php4-cgi

sudo apt-get install php4-cgi

php จะถูกติดตั้งไว้ที่ ในชื่อ php-cgi -->

14 items(1/2) 2 Next » Last »|