{"id":4719,"date":"2011-06-03T14:23:00","date_gmt":"2011-06-03T14:23:00","guid":{"rendered":"https:\/\/blog-staging.wowrack.co.id\/2011\/06\/03\/konfigurasi-php-as-cgi-dengan-suexec-pada-apache\/"},"modified":"2024-02-06T14:00:58","modified_gmt":"2024-02-06T07:00:58","slug":"konfigurasi-php-as-cgi-dengan-suexec-pada-apache","status":"publish","type":"post","link":"https:\/\/www.wowrack.com\/id-id\/blog\/technical-blog-id\/konfigurasi-php-as-cgi-dengan-suexec-pada-apache\/","title":{"rendered":"Konfigurasi PHP as CGI dengan suexec pada Apache"},"content":{"rendered":"<p>Catatan ini berasumsi, Apache dan php suda terinstall dan jalan dengan benar, pastikan php-cli dan mod_fcgid sudah terinstall, jika belum install dulu:<\/p>\n<pre>[root@server01 ~]#\u00a0yum mod_fcgid php-cli<\/pre>\n<p>disable mod_php dengan cara beri tanda comment pada semua baris di file berikut:<\/p>\n<pre>\/etc\/httpd\/conf.d\/php.conf<\/pre>\n<p>edit file \/etc\/php.ini<\/p>\n<pre><br\/>###pastikan ada baris berikut<br\/>###[...]<br\/>cgi.fix_pathinfo = 1<br\/><\/pre>\n<p>Menyiapkan direktory untuk masing-masing vhost:<\/p>\n<pre><br\/>[root@server01 ~]# mkdir -p \/home\/prayoga\/www\/idprayoga.com\/{htdocs,cgi-bin}<br\/>[root@server01 ~]# mkdir -p \/home\/perdana\/www\/idperdana.com\/{htdocs,cgi-bin}<br\/>[root@server01 ~]# chown -R prayoga:prayoga \/home\/prayoga\/www\/idprayoga.com<br\/>[root@server01 ~]# chown -R perdana:perdana \/home\/perdana\/www\/idperdana.com<br\/>[root@server01 ~]# chmod -R 755 \/home\/prayoga\/www\/idprayoga.com<br\/>[root@server01 ~]# chmod -R 755 \/home\/perdana\/www\/idperdana.com<br\/><\/pre>\n<p>Karena kita akan menjalankan PHP menggunakan suExec, harus di cek terlebih dahulu letak document root suExec dengan perintah <\/p>\n<pre><br\/>[root@server01 ~]# suexec -V<br\/>-D AP_DOC_ROOT=\"\/var\/www\"<br\/> -D AP_GID_MIN=100<br\/> -D AP_HTTPD_USER=\"apache\"<br\/> -D AP_LOG_EXEC=\"\/var\/log\/httpd\/suexec.log\"<br\/> -D AP_SAFE_PATH=\"\/usr\/local\/bin:\/usr\/bin:\/bin\"<br\/> -D AP_UID_MIN=500<br\/> -D AP_USERDIR_SUFFIX=\"public_html\"<br\/><\/pre>\n<p>Di atas terlihat document root terletak pada \/var\/www (AP_DOC_ROOT=\"\/var\/www\"). Dengan demikian kita tidak bisa memanggil binary PHP (\/usr\/bin\/php-cgi) secara langsung karena berada di luar document root suexec. Dan suexec juga tidak mengijinkan symlink. Sehingga, untuk menangani hal tersebut adalah dengan menciptakan skrip wrapper yang akan memanggil binary PHP(\/usr\/bin\/php-cgi) pada setiap situs web di direktory \/var\/www. Sebagai catatan, kepemilikan skrip wraper harus sesuai dengan user dan group yang mengakses.<\/p>\n<pre><br\/>[root@server01 ~]# mkdir -p \/var\/www\/php-fcgi-script\/prayoga<br\/>[root@server01 ~]# mkdir -p \/var\/www\/php-fcgi-script\/perdana<br\/>[root@server01 ~]# nano \/var\/www\/php-fcgi-script\/prayoga\/php-fcgi-starter<br\/>###isi file tersebut sebagai berikut :<br\/>#!\/bin\/sh<br\/>PHPRC=\/etc\/<br\/>export PHPRC<br\/>export PHP_FCGI_MAX_REQUESTS=5000<br\/>export PHP_FCGI_CHILDREN=8<br\/>exec \/usr\/bin\/php-cgi<br\/><\/pre>\n<p>keterangan :<br \/>baris PHPRC adalah direktory tempat file php.ini berada<br \/>baris PHP_FCGI_MAX_REQUESTS adalah jumlah maksimum permintaan sebelum proses fcgid dihentikan dan yang baru diluncurkan<br \/>baris PHP_FCGI_CHILDREN mendefinisikan jumlah child PHP yang akan diluncurkan<\/p>\n<p>buat juga file php-fcgi-starter pada \/var\/www\/php-fcgi-script\/perdana<\/p>\n<p>ubah permission dan kepemilikan file php-fcgi-starter<\/p>\n<pre><br\/>[root@server01 ~]# chmod 755 \/var\/www\/php-fcgi-script\/prayoga\/php-fcgi-starter<br\/>[root@server01 ~]# chmod 755 \/var\/www\/php-fcgi-script\/perdana\/php-fcgi-starter<br\/>[root@server01 ~]# chown -R prayoga:prayoga \/var\/www\/php-fcgi-script\/prayoga\/<br\/>[root@server01 ~]# chown -R perdana:perdana \/var\/www\/php-fcgi-script\/perdana\/<br\/><\/pre>\n<p>Buat virtual host pada httpd.conf<\/p>\n<pre><br\/>NameVirtualHost 10.100.100.99:80<br\/><br\/>&lt;VirtualHost 10.100.100.99:80&gt;<br\/>        ServerAdmin webmaster@idprayoga.com<br\/>        DocumentRoot \"\/home\/prayoga\/www\/idprayoga.com\/htdocs\"<br\/>        ServerName idprayoga.com<br\/>        ServerAlias idprayoga.com<br\/>        CustomLog \"|\/usr\/sbin\/cronolog \/var\/apachelogs\/prayoga\/%Y\/%m\/%d\/idprayoga.com.access_log\" combined<br\/>        ErrorLog \"|\/usr\/sbin\/cronolog \/var\/apachelogs\/prayoga\/%Y\/%m\/%d\/idprayoga.com.error_log\"<br\/><br\/>        ScriptAlias \/cgi-bin\/ \"\/home\/prayoga\/www\/idprayoga.com\/cgi-bin\/\"<br\/>        &lt;Directory \"\/home\/prayoga\/www\/idprayoga.com\/cgi-bin\"&gt;<br\/>                AllowOverride None<br\/>                Options None<br\/>                Order allow,deny<br\/>                Allow from all<br\/>        &lt;\/Directory&gt;<br\/><br\/> \t&lt;IfModule mod_fcgid.c&gt;<br\/>                SuexecUserGroup prayoga prayoga<br\/>                PHP_Fix_Pathinfo_Enable 1<br\/>                &lt;Directory \/home\/prayoga\/www\/idprayoga.com\/htdocs&gt;<br\/>                        Options +ExecCGI<br\/>                        AllowOverride All<br\/>                        AddHandler fcgid-script .php<br\/>                        FCGIWrapper \/var\/www\/php-fcgi-scripts\/prayoga\/php-fcgi-starter .php<br\/>                        Order allow,deny<br\/>                        Allow from all<br\/>               &lt;\/Directory&gt;<br\/>        &lt;\/IfModule&gt;<br\/>&lt;\/VirtualHost&gt;<br\/><\/pre>\n<p>buat juga untuk idperdana.com seperti di atas dan sesuaikan path serta user groupnya<\/p>\n<p>Restart apache.<\/p>\n<p>Untuk testing, anda bisa membuat file ceking.php di masing-masing direktory htdocs.<br \/>isi file tersebut :<\/p>\n<pre><br\/>&lt;?php<br\/>system(\"id\");<br\/>?&gt;<br\/><\/pre>\n<p>kemudian akses dari browser, maka harus menunjukkan masing-masing user dan group yang menjalankan.<\/p>\n<p><em> jika masih ada kekurangan mohon diberi masukan. Terimakasih \ud83d\ude09<\/em><\/p>\n<div>Blog Wowrack Indonesia<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Catatan ini berasumsi, Apache dan php suda terinstall dan jalan dengan benar, pastikan php-cli dan mod_fcgid sudah terinstall, jika belum install dulu: [root@server01 ~]#\u00a0yum mod_fcgid php-cli disable mod_php dengan cara beri tanda comment pada semua baris di file berikut: \/etc\/httpd\/conf.d\/php.conf edit file \/etc\/php.ini ###pastikan ada baris berikut###[...]cgi.fix_pathinfo = 1 Menyiapkan direktory untuk masing-masing vhost: [root@server01 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2252,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[725,948],"tags":[],"class_list":["post-4719","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-blog-id","category-cloud-id","post-wrapper"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/posts\/4719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/comments?post=4719"}],"version-history":[{"count":0,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/posts\/4719\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/media\/2252"}],"wp:attachment":[{"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/media?parent=4719"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/categories?post=4719"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/tags?post=4719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}