Saya relatif baru ke dunia unix command line manajemen / administrasi server web.
Banyak host dengan opsi administrasi panel kontrol memungkinkan Anda mengubah cara PHP dijalankan dengan opsi sederhana.
Opsi yang paling umum adalah:
- modul apache
- Aplikasi CGI
- Aplikasi FastCGI
Pertanyaan saya sederhana, bagaimana Anda mengubahnya melalui baris perintah? Saya tahu ada banyak file konfigurasi untuk apache.
Hal terdekat yang saya temukan adalah pertanyaan ini , tetapi struktur direktori sepertinya tidak cocok untuk OS saya (Ubuntu 12.04).
Saya cukup bingung bagaimana tampaknya tidak ada panduan yang jelas bahwa saya dapat menemukan rincian proses ini untuk sesuatu yang tampaknya sangat umum. Maafkan saya jika ini ada ... jika demikian, tolong tunjukkan saya ke arah yang benar.
php
apache2
command-line
Evan Mattson
sumber
sumber
Jawaban:
Terima kasih atas jawaban sebelumnya, mereka mendapatkan saya sebagian besar jalan, tetapi untuk mendapatkan hal-hal yang berfungsi saya harus menggabungkan instruksi dari beberapa tempat, jadi saya pikir saya akan menulis satu set lengkap perintah.
FYI Saya menjalankan Ubuntu 14.04, Apache 2.4, dan juga memiliki modphp berjalan secara default, instruksi sebelumnya juga mengabaikan kebutuhan untuk menonaktifkan modphp.
Saya juga menemukan http://blog.starcklin.com/2013/08/install-mod-fastcgi-and-php5-fpm-on-ubuntu/ sangat informatif dan mudah.
Cukup jalankan perintah berikut di terminal satu demi satu.
Pertama instal paket yang diperlukan (saya tinggalkan php5 karena ini menganggap itu sudah diinstal, tambahkan kembali untuk instalasi pertama kali). Perhatikan juga dari Apache 2.4 hingga Anda dapat menggunakan event-mpm alih-alih pekerja lihat http://www.vps.net/blog/2013/04/08/apache-mpms-prefork-worker-and-event/ . Contoh saya menunjukkan pekerja, tetapi hanya mengganti kata pekerja dengan acara jika Anda lebih suka menggunakannya.
Sekarang aktifkan mod yang Anda butuhkan, dan nonaktifkan yang tidak.
Buat file php5.fcgi dan berikan izin server web untuk menggunakannya.
Buat konfigurasi global untuk php5-fpm
rekatkan yang berikut ini (kami akan menggunakan soket alih-alih alamat IP)
Aktifkan conf php5-fpm
Mulai ulang apache dan fpm
Sesuai instruksi lainnya, tempel berikut ini ke file php baru yang dapat ditelusuri di server web Anda.
Buka file yang baru saja Anda edit di browser web, Jika Anda melihat "FPM / FastCGI" di sebelah Server API, Anda sekarang melayani PHP dengan FastCGI!
sumber
Saya akhirnya menemukan tutorial yang bagus untuk melakukan hal ini. Saya akan menguraikan langkah-langkah yang saya ambil karena saya sudah memasang LAMP stack saya tetapi tutorial lengkapnya dapat ditemukan di sini .
Catatan untuk yang baru:
Dalam tutorial, ini dimulai dengan beralih ke pengguna root dengan:
Dalam kasus saya, saya hanya awalan perintah itu
sudo
alih-alih beralih pengguna, jadi saya akan mendokumentasikan langkah saya seperti itu.Mulai
Langkah satu: Instal Apache Worker MPM (Modul Multi-Procesing)
Ini menggantikan prefork yang telah saya instal yang merupakan default ketika menginstal Apache.
Langkah 2: Instal PHP5 dan modul yang diperlukan
Pada titik ini Anda mungkin mendapatkan kesalahan saat menginstal 'libapache2-mod-fastcgi':
Bagian ini tidak ada dalam tutorial di atas
Untuk merekonsiliasi ini,
multiverse
repositori harus ditambahkan ke sumber apt.Untuk melakukan ini:
Yang saya tambahkan baris berikut:
precise
dalam hal ini merujuk pada versi Ubuntu saya " Pangolin Tepat ".Jadi sekarang, simpan perubahan itu dan kembali ke terminal:
dan lagi:
yang akan (seharusnya) sekarang berfungsi.
Sekarang aktifkan modul Apache ini:
restart apache
Langkah 3: Konfigurasi Apache
Untuk membuat Apache berfungsi dengan PHP-FPM, kita memerlukan konfigurasi berikut:
Anda dapat meletakkannya di konfigurasi global Apache (jadi itu diaktifkan untuk semua vhosts), misalnya di
/etc/apache2/conf.d/php5-fpm.conf
(file ini tidak ada, jadi Anda harus membuatnya), atau Anda dapat menempatkannya di setiap vhost yang harus menggunakan PHP-FPM.Saya memilih untuk pergi ke rute global, jadi:
rekatkan di blok kode di atas, dan simpan, keluar. File baru ini akan secara otomatis dimuat oleh konfigurasi default Apache yang memuat semua file dalam
/etc/apache2/conf.d/
direktori.restart Apache:
Sekarang buat file PHP berikut di root dokumen
/var/www
:Menambahkan:
simpan & keluar.
Sekarang kita memanggil file itu di browser (mis.
http://your-server-ip/info.php
)Di bawah Server API di bagian atas Anda akan melihat
FPM/FastCGI
.Keberhasilan!
Untuk informasi lebih lanjut seperti cara mengubah PHP-FPM untuk menggunakan soket unix alih-alih port TCP default atau cara mengkonfigurasi ini untuk masing-masing host virtual alih-alih semuanya, lihat tutorial sumber yang ditautkan di atas.
sumber
Require all granted
hal tersebut hanya diperlukan sejak Apache 2.4. Jika saya meletakkannya di file konfigurasi dengan Apache 2.2, gagal.Di Ubuntu 14.04 setelah melakukan langkah-langkah dari jawaban yang diterima, edit /etc/apache2/conf-available/php5-fpm.conf
Kemudian jalankan
sumber
Jika seseorang melakukan ini di Ubuntu 16.04 dan telah diturunkan dari php 7 ke php 5.6 (Ondrej), Anda harus mengganti beberapa baris (berdasarkan jawaban JDawgg):
sudo apt-get install libapache2-mod-fastcgi php5-fpm ke:
sudo a2dismod php5 mpm_prefork ke:
sudo nano /etc/apache2/conf-available/php5-fpm.conf ke:
Proses instalasi php5.6-fpm sudah membuat file, jadi tidak perlu membuatnya. Namun, saya menghapus semua teks yang ada pada file itu karena dimaksudkan untuk mod_php5.
Saya mengubah jalur dari /var/run/php5-fpm.sock ke /var/run/php/php5.6-fpm.sock karena file tersebut berada di sana.
sudo a2enconf php5-fpm ke:
sudo service apache2 restart && sudo service php5-fpm restart ke:
Saya harap ini membantu pemula lain seperti saya :)
sumber