Saya baru saja menginstal Ubuntu Server 10,04 dengan pengaturan LAMP. Saya ingin meng-host situs web di sana tetapi saya tidak yakin yang mana cara terbaik untuk mendapatkan / mengedit file saya di server. Googling menyediakan banyak opsi, tetapi saya tidak yakin mana yang terbaik?
Kecuali ada pilihan yang lebih baik, saya ingin membuat halaman di PC lain (Windows atau Linux) dan menggunakan SFTP untuk menyinkronkan perubahan ke server - tetapi apakah saya melakukan ini ke folder yang disinkronkan di ~ / atau dengan mengubah hak pada folder / var / www /?
Jawaban:
Setiap pengaturan berbeda. Bagi saya, saya memiliki banyak pengguna di server yang masing-masing meng-host situs web, untuk Anda, Anda mungkin tidak perlu membuat lebih dari satu pengguna di sistem. Namun, jika Anda mengelola beberapa situs web di server ini, pengaturan ini akan membantu Anda mengelola, mengkonfigurasi, dan men-debug setiap domain dengan cara yang lebih mudah daripada pengaturan LAMP standar. Agar hal itu terjadi, saya menggunakan beberapa perangkat oleh Apache untuk mengatasi kesalahan izin.
Pertama, ini adalah struktur dokumen yang saya gunakan:
Setiap pengguna memiliki akun sendiri dengan folder domain (yang saya tambahkan
/etc/skel
sehingga dibuat setiap waktu. Setiap domain memiliki folder sendiri didomains
folder denganhtml
folder (Saya punya alasan untuk ini, terutama agar domain dapat memiliki file web di luar dari ranah publik) Jangan ragu untuk memodifikasi struktur ini sesuai keinginan Anda, ingatlah untuk membawa perubahan-perubahan tersebut di seluruh posting ini.Kedua, saya meng-host banyak situs PHP jadi saya menggunakan suPHP dalam konfigurasi saya. Secara default paket arsip standar tidak mengaktifkan flag kompilasi yang tepat sehingga menghasilkan versi suPHP yang kurang aman. Saya telah membuat paket suPHP saya sendiri yang saya gunakan di server saya, instruksi instalasi di bawah ini. suPHP memungkinkan Anda untuk menentukan skrip PHP apa yang harus dijalankan oleh pengguna (antara lain termasuk: custom php.ini untuk setiap situs, dll). Saya juga mengaktifkan suExec untuk Apache - lebih lanjut menghapus kebutuhan untuk memiliki kepemilikan kepada pengguna data-www (pengguna yang saya benci).
Pertama, pastikan Anda memiliki Apache, dan semua layanan lainnya diinstal pada server Anda. Pastikan mereka setidaknya berfungsi. Setelah itu saya merekomendasikan untuk menginstal suphp-common dan modul libapache2-mod-suphp yang diperlukan (Informasi lebih lanjut: Apa itu PPA dan bagaimana cara menggunakannya? ). Kemudian, setelah menginstal, aktifkan suPHP dan suexec menggunakan
a2enmod
Selanjutnya akan muncul file konfigurasi. Saya telah membuat berbagai alat yang secara otomatis menghasilkan file konfigurasi setiap kali saya menambahkan situs baru; namun, inilah templat dasar yang saya gunakan:
Ini mengatur logging untuk domain itu, root dokumen, dan semua kebutuhan dasar lainnya untuk domain untuk beroperasi. Saya menempatkan file-file ini dalam
/etc/apache2/sites-available/
nama yang khas[USER]-[DOMAIN]
dan mengaktifkan / menonaktifkannya dengana2ensite
seperti:Setelah setiap modifikasi ke file konfigurasi, Apache perlu dimuat ulang
Meskipun mungkin tampak seperti banyak mengatur jumlah fleksibilitas yang didapat, menurut saya, jauh melebihi waktu setup. Meskipun Anda hanya memerlukan server web pengguna tunggal, di masa depan jika Anda menginginkan sesuatu selain server web pengguna tunggal, Anda perlu melakukan tindakan lebih lanjut (atau hanya menggabungkan keamanan secara bersamaan) untuk melakukannya.
sumber
Sftp sangat mudah dipasang. Cukup instal paket
openssh-server
dan Anda akan memiliki sftp. Pastikan pengguna Anda memiliki kata sandi yang baik jika Anda bisa mendapatkannya dari internet. (8+ karakter, bukan kata kamus, memiliki simbol dan angka).Untuk izin, saya biasanya melakukan ini.
sudo adduser <username> www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rw /var/www
Anda kemudian dapat memposting halaman dengan menghubungkan dengan sftp (menggunakan nama pengguna dan kata sandi Anda) dan kemudian pergi ke folder / var / www dan menempatkan file Anda di sana.
sumber
Saya menggunakan webdav. Sangat mudah untuk menginstal di Server Ubuntu. Jika Anda telah menginstal apache, Anda hampir selesai. Adil
sudo a2enmod dav; service apache2 restart
. Anda harus melakukan sedikit konfigurasi situs virtual Anda. Berikut ini contoh yang saya gunakan dalam produksi:Anda dapat meletakkan ini di / srv / etc / apache2 / sites-available / mysite dan kemudian lakukan
sudo a2ensite mysite; sudo service apache2 reload
.Apa yang terjadi di sini adalah Anda telah membuat dua situs virtual. Salah satunya adalah www.mysite.com dan yang lainnya adalah webdav.mysite.com. PHP telah dinonaktifkan di webdav.mysite.com yang penting.
Sekarang Anda dapat mengakses situs Anda melalui http di Ubuntu, Windows dan MacOS. Ketiganya telah membangun dukungan webdav. Berikut adalah petunjuk tentang menambahkan lokasi jaringan webdav di Ubuntu .
sumber
mkdir -p /srv/mysite/www; chown -R www-data.www-data /srv/mysite
.Saya akan memberikan izin menulis ke / var / www ke data-www dan menambahkan pengguna Anda ke grup itu. Dengan begitu akan mudah untuk mengontrol pengguna mana yang dapat menulis ke direktori itu.
sumber
Apakah Anda menggunakan kerangka kerja untuk situs Anda? Drupal, Wordpress, dll? Drupal misalnya memiliki alat untuk mengunggah melalui interaksi peramban.
Apakah Anda sudah melihat Samba? Anda dapat mengatur pembagian Samba (dan ada banyak sumber daya di web untuk mereka) dan cukup menggunakan Windows Explorer untuk membuka / mengedit / menyimpan / menghapus. Atur / var / www untuk dibagikan dan kemudian petakan "drive jaringan" ke windows.
Apakah ini pekerjaan atau lingkungan rumah? Kedengarannya seperti di rumah, tetapi jika Anda berada di lingkungan kerja ... Anda dapat memasangkan Samba dengan Active Directory dengan alat-alat seperti Likewise-Open. Saya memiliki pengaturan server / situs web sehingga mereka yang berada di toko IT dapat masuk ke kedua sisi server (linux atau situs web) melalui kredensial AD mereka.
Saya juga menyarankan melihat sesuatu seperti Mercurial. Buat repositori di server, dan sinkronkan dengan windows melalui sesuatu seperti TortiseHG. Saya menganggap itu seperti rsync, tetapi Anda akan memiliki versi, cadangan, kemampuan untuk mendistribusikan, dll (SVN, Mercurial, Git, dll semua opsi)
sumber
Anda dapat menggunakan sshfs. https://help.ubuntu.com/community/SSHFS
sumber
Apakah Anda mencari sesuatu seperti ini
sumber