Di luar kepala saya, Anda harus:
- Pelajari sistem file Anda.
- Pelajari cara memulai/menghentikan proses (layanan) yang Anda gunakan.
- Temukan atau pelajari editor teks dasar (Vim, JOE, atau Pico)
- Pelajari cara memeriksa proses untuk melihat apakah ada yang berjalan (ps, atas)
- Jika Anda memelihara server, Anda perlu mempelajari cara memasang paket.
Ini hanyalah dasar-dasarnya. Langkah selanjutnya adalah menyadari ketika Anda memiliki masalah dan tahu ke mana Anda bisa mencari tahu lebih banyak informasi tentangnya. Bahkan dengan semua ini, itu hanya menggores permukaan dan banyak hal mungkin tidak masuk akal. Ini adalah awal yang baik.
80% masalah Anda adalah izin. Windows melakukannya secara berbeda; jika Anda masuk sebagai root (atau dengan priv seperti root), Anda dapat melewati izin. Apache tidak bisa dan tidak mau.
- Pelajari cara mengatur kepemilikan file dan direktori dengan benar. Setiap buku Unix akan membahas ini:pastikan untuk benar-benar memahaminya -- ini bukan keamanan Windows yang dieja secara berbeda -- ini adalah model keamanan yang berbeda.
Dari masalah yang tersisa, 80% akan menjadi masalah PATH. PHP tidak memiliki masalah PATH sebesar Java dan Python, tetapi semuanya menggunakan pengaturan PATH untuk menemukan komponen dan pustaka. Anda akan mendapatkan kesalahan itu secara teratur. Windows memiliki PATH, tetapi juga memiliki registri, membuat segalanya menjadi sangat mudah atau sangat rahasia. Unix tidak menyimpan rahasia.
- Pelajari variabel lingkungan apa yang digunakan PHP dan MySQL. Pastikan Anda tahu di mana dan bagaimana pengaturannya. Apache berjalan di lingkungannya sendiri yang khas, dan memiliki perintah untuk menyediakan pengaturan lingkungan runtime melalui
mod_php
. Tulisecho $PATH
singkat skrip shell untuk mengungkapkan apa yang terjadi.
Dari masalah yang tersisa, 80% akan terkait dengan basis data. Setelah memilah izin basis data, Anda masih harus terhubung, dan hal-hal "bernama pipa" vs. "localhost" akan salah dengan cara yang tidak jelas dan membingungkan. MySQL sangat pemaaf, tetapi Anda akan membuat beberapa kesalahan di sini.
- Coba setiap koneksi alternatif, ketahui cara kerjanya. Jangan pilih satu karena mirip Windows, atau "lebih sederhana". Sebenarnya latihan masing-masing. Cara Anda meneruskan nama pengguna dan kata sandi dari aplikasi web ke server basis data juga penting. Apache berjalan sebagai "bukan siapa-siapa" -- dan Anda tidak ingin memberi mereka akses default ke apa pun. Aplikasi Anda harus membuat koneksi yang disengaja ke database tanpa menggunakan default.
Dari masalah yang tersisa, 80% adalah konfigurasi Apache. Apache sangat sederhana, tetapi memiliki sejuta opsi. Ada empat cara untuk melakukan segalanya, dan Anda akan selalu mencoba dua yang tidak berhasil sama sekali, dan puas dengan yang ketiga yang akan menjijikkan. Yang keempat, yang jauh lebih sederhana, tidak akan pernah terpikir oleh Anda.
- Baca BANYAK tentang konfigurasi Apache. Situs httpd.apache.org memiliki banyak informasi. Berjuang untuk kesederhanaan. Salin contoh yang ada dan gunakan. Jangan membuat persyaratan atau implementasi yang diinginkan berdasarkan pengalaman IIS atau pengalaman desktop Windows. Salin sesuatu yang berhasil.
Dari masalah yang tersisa, 80% akan menjadi aplikasi penggunaan sistem file. Jika Anda mencoba membuka, membaca, atau menulis file lokal, Anda akan menemukan bahwa (a) izin tidak benar pada direktori yang Anda coba gunakan [lihat di atas] dan (b) jalur file Unix berbeda. Tidak jauh berbeda, tetapi cukup berbeda sehingga sesuatu akan pecah dengan cara yang tidak jelas.
- Setiap buku pemrograman di buku Unix/Linux mencakup hal ini. Ini tidak jauh berbeda dari Windows, hanya cukup berbeda untuk membuat Anda tersandung pertama kali. Tulis halaman PHP seperti "halo dunia" untuk meningkatkan versi unggahan atau unduhan sesederhana mungkin hanya untuk memastikan Anda memiliki semua bagian dan bagian di tempatnya. Kemudian perbaiki aplikasi lengkap Anda untuk melakukannya dengan benar.
Dari masalah yang tersisa, 80% akan menjadi pembuatan subproses. Windows melakukan ini secara berbeda. Salah satu hal terpenting di Unix adalah mengingat bahwa subproses Anda adalah anak Anda dan Anda harus benar-benar menunggu hingga selesai agar OS dapat dibersihkan. Jika Anda menganggap subproses sebagai hal "api-dan-lupakan" paralel, Anda akan memiliki proses zombie dan dipaksa untuk melakukan reboot berkala.
- Tulis halaman PHP yang sangat sederhana untuk meningkatkan pengelolaan subproses. Aturan emasnya adalah mengatur anak-anak Anda dan membersihkan setelah mereka. Kemudian perbaiki aplikasi lengkap Anda untuk melakukannya dengan benar.
Masalah yang tersisa akan menjadi logika aplikasi yang sepele, tetapi karena perbedaan platform, Anda akan menyalahkan Unix sebelum Anda melacak bug di aplikasi PHP.
- Selesaikan pengujian unit dan logging Anda sehingga Anda dapat melakukan debug secara efektif.